Funkcija eval

Galite naudoti funkciją eval , kad įvertintumėte išraiška, kurios rezultatas yra teksto eilutė arba skaitinė reikšmė.

Galite sukurti eilutę ir perduoti ją į eval funkciją, tarsi eilutė būtų tikroji išraiška. Funkcija eval įvertina eilutės išraiška ir grąžina jo reikšmę. Pvz., Eval("1 + 1") grąžina 2.

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

Sintaksė

Eval ( stringexpr )

Argumentas stringexpr yra reiškinys, kuris apskaičiuoja raidinę skaitmeninę teksto eilutę. Pvz., stringexpr gali būti funkcija, pateikianti eilutę arba skaitinę reikšmę. Arba tai gali būti nuoroda į valdiklis formoje. Argumentas stringexpr turi įvertinti eilutę arba skaitinę reikšmę; ji negali įvertinti „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: Jei norite, kad funkcija eval būtų įtraukta į funkciją eval , turite įtraukti skliaustelius po funkcijos pavadinimo, esančio argumente stringexpr . Pavyzdžiui:

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

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

Debug.Print Eval("Date()")

Pastabos

Galite naudoti funkciją Evalapskaičiuojamasis valdiklis formoje arba ataskaitoje arba makrokomandoje arba modulyje. Funkcija eval pateikia variantą, kuris yra eilutė arba skaitinis tipas.

Argumentas stringexpr turi būti reiškinys, kuris saugomas eilutėje. Jei į funkciją eval pereisite eilutę, kurioje nėra skaitinės išraiškos arba funkcijos pavadinimo, bet tik paprasta teksto eilutė, atsiranda vykdymo klaida. Pvz., Eval("Smith") sukelia klaidą.

Galite naudoti funkciją eval , jei norite nustatyti reikšmę, saugomą valdiklio ypatybėje reikšmė . Toliau pateiktame pavyzdyje pateikiama eilutė, kurioje yra visa nuoroda į valdiklį eval . Tada dialogo lange rodoma dabartinė valdiklio 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))

Galite naudoti funkciją eval , kad pasiektumėte reiškinio operatorius, kurie nėra paprastai pasiekiami "Visual Basic for Applications" (VBA) modulyje. Pavyzdžiui, negalite naudoti SQL operatorių tarp... Ir arba tiesiogiai savo kode, bet galite juos naudoti išraiškoje, Perduodoje funkcija eval .

Kitas pavyzdys nustato, ar formoje užsakymai esantis valdiklio ShipRegion reikšmė yra viena iš kelių nurodytų būsenų santrumpų. Jei lauke yra viena iš santrumpų, intState bus True (– 1). Nepamirškite, kad naudojate viengubas kabutes ('), kad įtrauktumėte eilutę į kitą eilutę.

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

Užklausos pavyzdžiai

Reiškinys

Rezultatai

Pasirinkite eval ("15 + 3") kaip Reiškinys1 iš ProductSales GROUP eval ("15 + 3");

Apskaičiuoja eilutės reikšmę ir apskaičiuoja rezultatą. Rezultatas: 18.

Pasirinkite eval ("date () + Month (Date ())") kaip NewDate iš ProductSales grupės pagal eval ("date () + Month (Date ())");

Apskaičiuoja eilutės reikšmę, identifikuoja funkcijas ir jas vykdo. Rezultatas: dabartinė sistemos data + dabartinis mėnuo, rodoma stulpelyje "NewDate".

VBA pavyzdžiai

Toliau pateiktame pavyzdyje laikoma, kad turite seriją 50 funkcijų, apibrėžtų kaip a1, a2 ir kt. Šiame pavyzdyje funkcija eval naudojama norint iškviesti kiekvieną sekos funkciją.

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

Kitas pavyzdys paleidžia spustelėkite įvykį kaip, jei vartotojas spustelėjo formos mygtuką. Jei mygtuko onclick reikšmė prasideda lygybės ženklu (=), tai reiškia, kad tai yra funkcijos pavadinimas, funkcija eval iškviečia funkciją, kuri gali sukelti spustelėkite įvykį. Jei reikšmė neprasideda lygybės ženklu, reikšmė turi pavadinti makrokomandą. Objekto DoCmd metodas RunMacro vykdo įvardytą makrokomandą.

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

Pastaba:  Š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. Prašome mus informuoti, ar radote reikiamos informacijos. Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip nuoroda.

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ų.

×