Преминаване към основното съдържание
Office

Функция Eval

Можете да използвате функцията eval , за да оцените TE000127001, в резултат на което се получава текстов низ или числова стойност.

Можете да съставите низ и след това да го предадете на функцията eval , като че ли низът е действително израз. Функция eval изчислява TE000127596 и връща стойността си. Например Eval("1 + 1") връща 2.

Ако предадете на функцията eval низ, който съдържа името на функция, функцията eval връща върнатата стойност на функцията. Например Eval("Chr$(65)") връща "а".

Синтаксис

Оценка (stringexpr)

Аргументът stringexpr е израз, който се оценява на буквено-цифров текстов низ. Например stringexpr може да бъде функция, която връща низ или числова стойност. Или може да бъде препратка към TE000127312 във формуляр. Аргументът stringexpr трябва да изчислява низ или числова стойност; не може да се оцени като TE000126686.

Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Забележка: Ако предавате името на функция на функция eval , трябва да включвате скоби след името на функцията в аргумента stringexpr . Например:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Забележки

Можете да използвате функцията eval в TE000126578 във формуляр или отчет или в макрос или модул. Функция eval връща вариант, който е низ или числов тип.

Аргументът stringexpr трябва да бъде израз, който се съхранява в даден низ. Ако преминавате към функция eval низ, който не съдържа числов израз или име на функция, но само обикновен текстов низ, възниква TE000127555. Например Eval("Smith") води до грешка.

Можете да използвате функцията eval , за да определите стойността, съхранена в свойството Value на контрола. Следващият пример преминава към низ, съдържащ пълна препратка към контрола към функция eval . След това показва текущата стойност на контролата в диалогов прозорец.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Можете да използвате функцията eval за достъп до оператори за изрази, които обикновено не се предлагат в модула на Visual Basic for Applications (VBA). Например не можете да използвате SQL операторите между... А или направо във вашия код, но можете да ги използвате в израз, препратен към функция eval .

Следващият пример определя дали стойността на контролата Регионекспедиция във формуляра за поръчки е една от няколкото зададени абревиатури на щата. Ако полето съдържа едно от съкращенията, intState ще бъде TRUE (-1). Имайте предвид, че използвате единични кавички ('), за да включите низ в друг низ.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Примери за заявки

Израз

Резултати

Изберете eval ("15 + 3") като Израз1 от ProductSales GROUP BY eval ("15 + 3");

Оценява стойността на низа и изчислява резултата. Резултат: 18.

Изберете eval ("date () + month (date ())") като NewDate от ProductSales Group by eval ("дата () + месец (дата ())

Оценява стойността на низа, определя функциите и ги изпълнява. Резултат: текущата системна дата + текущия месец, показан в колоната "NewDate".

Примери за VBA

Следващият пример предполага, че имате серия функции за 50, дефинирани като a1, a2 и т. н. Този пример използва функцията eval за обаждане на всяка функция в серията.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

Следващият пример активира събитие за щракване , ако потребителят е кликнал върху бутон във формуляр. Ако стойността на свойството onclick на бутона започва със знак за равенство (=), което означава, че това е името на функция, функцията eval извиква функцията, която е еквивалентна на активирането на събитието за щракване . Ако стойността не започва със знак за равенство, стойността трябва да наименува макрос. Методът макродействие RunMacro на обекта DoCmd изпълнява наименувания макрос.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Забележка:  Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас? Ето статията на английски за справка.

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×