Eval funkcija

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Eval funkcija galite įvertinti išraiška , teksto eilutė arba skaitinę reikšmę.

Galite sudaryti eilutę ir tada perduoti ją Eval funkcija, jei eilutė buvo faktinis išraiška. Eval funkcija įvertina eilutės išraiška ir pateikia jos reikšmę. Pvz., Eval("1 + 1") grąžina 2.

Jei pereisite į Eval funkcija eilutę, kurioje yra funkcijos pavadinimo, Eval funkcija pateikia reikšmę funkciją. Pvz., Eval("Chr$(65)") grąžina "A".

Sintaksė

Eval ( stringexpr )

Stringexpr argumentas yra išraiška, kuri yra lygi iš raides ir skaičius teksto eilutė. Pvz., stringexpr gali būti funkcija, kuri pateikia eilutę arba skaitinę reikšmę. Arba tai gali būti nuoroda į valdiklis , formos. Stringexpr argumentas turi įvertinti tokias eilutę arba skaitinę reikšmę; jo negalima apskaičiuoti „Microsoft Access“ objektas.

Pastaba: Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos) ir ieškos lauke įvedę vieną ar daugiau sąlygų.

Pastaba: Jeigu jums yra funkcijos pavadinimo Eval funkcijos, turi būti skliausteliuose po funkciją į argumento stringexpr pavadinimo. Pvz.:

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

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

Debug.Print Eval("Date()")

Pastabos

Jūs galite naudoti Eval funkcija apskaičiuojamasis valdiklis formą arba ataskaitą, arba makrokomandą arba modulį. Eval funkcija pateikia į variantą, kuris yra eilutė arba skaitinį tipą.

Argumentas stringexpr turi būti reiškinys, kuris saugomas eilutė. Jei jums perduoti Eval funkcija eilutę, nėra skaitmeninė išraiška arba funkcijos pavadinimą, bet tik paprasto teksto eilutė, įvyksta vykdymo klaida . Pvz., Eval("Smith") rezultatų yra klaida.

Eval funkcija galite nustatyti, saugomi valdiklio ypatybės reikšmę. Toliau pateiktame pavyzdyje eina eilutė su išsami nuoroda į valdiklį, kad Eval funkcija. Tada dialogo lange rodomas valdiklio dabartinę reikšmę.

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))

Pasiekti išraiška operatorius, kurių paprastai nėra Visual Basic for Applications (VBA) modulyje, galite naudoti funkciją Eval . Pavyzdžiui, negalite naudoti SQL operatorius tarp... Ir arba į tiesiai į jūsų kodą, bet jūs galite naudoti juos Eval funkcijai išraiškos.

Kitame pavyzdyje nustato, ar Siuntimo_regionas valdiklio užsakymų formoje reikšmė yra viena iš kelių nurodytą valstybės santrumpos. Jei lauke yra viena iš trumpinių, intState bus teisinga (-1). Pastaba naudoti viengubose kabutėse ('), Norėdami įtraukti eilutę kitoje eilutėje.

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

Pavyzdys

Toliau pateiktame pavyzdyje daroma prielaida, kad tam tikrų 50 funkcijas, apibrėžta kaip A1, A2 ir pan. Šiame pavyzdyje funkcija Eval paskambinti funkciją sekos.

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

Kitame pavyzdyje paleidžia spustelėkite įvykį, jei vartotojas spustelėjęs mygtuką forma. Jei esantį mygtuką nuspaustą reikšmė prasideda lygybės ženklu (=), reiškia, kad tai funkcijos, Eval pavadinimas funkcija skambučių funkciją, kuri yra lygi suaktyvina spustelėkite įvykį. Jei reikšmė nėra prasideda lygybės ženklu, reikšmę turite pavadinti makrokomandą. Objekto DoCmd metodą , bus vykdoma įvardyta makrokomanda.

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
Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×