Fungsi eval

Penting: Artikel ini diterjemahkan oleh mesin, lihatlah notis penafian. Sila dapatkan versi Bahasa Inggeris artikel ini di sini sebagai rujukan anda

Anda boleh menggunakan fungsi Eval untuk menilai kepada ungkapan yang terhasil dalam rentetan teks atau nilai angka.

Anda boleh membina rentetan dan kemudian menghantar ia fungsi Eval seolah-olahnya rentetan ungkapan sebenar. Fungsi Eval menilai ungkapan rentetan dan mengembalikan nilai. Contohnya, Eval("1 + 1") mengembalikan 2.

Jika anda menghantar kepada fungsi Eval rentetan yang mengandungi nama fungsi, fungsi Eval mengembalikan nilai yang dikembalikan fungsi. Contohnya, Eval("Chr$(65)") mengembalikan "A".

Sintaks

Eval ( stringexpr )

Argumen stringexpr ialah ungkapan yang menilai rentetan teks abjad angka. Contohnya, stringexpr boleh fungsi yang mengembalikan rentetan atau nilai angka. Atau anda boleh menggunakan rujukan kepada kawalan pada borang. Stringexpr argumen mesti menilai kepada rentetan atau nilai angka; Ia tidak boleh menilai kepada Objek Microsoft Access.

Nota: Contoh berikut menunjukkan penggunaan fungsi ini dalam Visual Basic for Applications (VBA) modul. Untuk maklumat lanjut tentang bekerja dengan VBA, pilih Rujukan pembangun dalam senarai juntai bawah di sebelah Cari dan memasukkan satu atau lebih istilah dalam kotak carian.

Nota: Jika anda adalah pemberian nama fungsi fungsi Eval , anda mesti mempunyai tanda kurungan selepas nama fungsi dalam argumen stringexpr . Contohnya:

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

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

Debug.Print Eval("Date()")

Catatan

Anda boleh menggunakan fungsi Eval dalam satu kawalan terhitung pada borang atau laporan atau dalam makro atau modul. Fungsi Eval mengembalikan satu varian yang sama ada rentetan atau jenis berangka.

Argumen stringexpr mesti ungkapan yang disimpan dalam rentetan. Jika anda menghantar kepada fungsi Eval rentetan yang tidak mengandungi ungkapan berangka atau nama fungsi tetapi hanya rentetan teks yang ringkas, ralat masa jalanan berlaku. Contohnya, Eval("Smith") menghasilkan ralat.

Anda boleh menggunakan fungsi Eval untuk menentukan nilai yang disimpan dalam sifat nilai kawalan. Contoh berikut fasa rentetan yang mengandungi rujukan penuh pada kawalan fungsi Eval . Ia kemudian memaparkan nilai semasa bagi kawalan dalam kotak dialog.

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

Anda boleh menggunakan fungsi Eval untuk mencapai operator ungkapan yang tidak biasa tersedia dalam Visual Basic for Applications (VBA) modul. Contohnya, anda tidak boleh menggunakan operator SQL antara... Dan atau dalam terus dalam Kod anda, tetapi anda boleh menggunakannya dalam ungkapan dihantar ke fungsi Eval .

Contoh berikut menentukan sama ada nilai ShipRegion kawalan pada borang pesanan adalah salah satu daripada beberapa keadaan tertentu singkatan. Jika medan mengandungi salah satu singkatan, intState akan True (-1). Perhatikan bahawa anda menggunakan tanda petikan tunggal (') untuk memasukkan rentetan dalam rentetan lain.

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

Contoh

Contoh berikut menganggap bahawa anda mempunyai satu siri 50 fungsi yang ditakrifkan sebagai A1, A2 dan sebagainya. Contoh ini menggunakan fungsi Eval untuk panggilan setiap fungsi dalam siri.

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

Contoh berikut mencetuskan peristiwa klik seperti jika pengguna telah mengklik butang pada borang. Jika nilai pada butang OnClick sifat bermula dengan tanda sama dengan (=), fungsi menandakan bahawa ia adalah nama fungsi, Eval panggilan fungsi, iaitu sama dengan mencetuskan peristiwa klik . Jika nilai tidak bermula dengan tanda sama dengan, kemudian nilai mesti nama makro. Kaedah RunMacro bagi objek DoCmd menjalankan makro bernama.

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

Nota: Notis Penafian Penterjemahan Mesin: Artikel ini telah diterjemah oleh sistem komputer tanpa campur tangan manusia. Microsoft menawarkan penterjemahan mesin ini untuk membantu pengguna-pengguna yang tidak bertutur dalam Bahasa Inggeris supaya dapat menikmati kandungan mengenai produk, perkhidmatan dan teknologi Microsoft. Artikel ini mungkin mengandungi ralat perbendaharaan kata, sintaks atau tatabahasa kerana ia diterjemahkan oleh mesin.

Kembangkan kemahiran anda
Jelajahi latihan
Dapatkan ciri baru terlebih dahulu
Sertai Office Insiders

Adakah maklumat ini membantu?

Terima kasih atas maklum balas anda!

Terima kasih atas maklum balas anda! Nampaknya ia mungkin akan membantu untuk menyambungkan anda kepada salah seorang daripada ejen sokongan Office kami.

×