ฟังก์ชัน Eval

หมายเหตุ: เราต้องการมอบเนื้อหาวิธีใช้ปัจจุบันในภาษาของคุณให้กับคุณโดยเร็วที่สุดเท่าที่เราจะทำได้ หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณแจ้งให้เราทราบว่าข้อมูลดังกล่าวมีประโยชน์ต่อคุณที่ด้านล่างของหน้านี้ได้หรือไม่ นี่คือบทความภาษาอังกฤษเพื่อให้ง่ายต่อการอ้างอิง

คุณสามารถใช้ฟังก์ชันEvalเมื่อต้องการประเมินความนิพจน์ ที่เป็นผลลัพธ์ในสตริงข้อความหรือค่าตัวเลข

คุณสามารถสร้างสตริงที่แล้ว ส่งผ่านนั้นไปยังฟังก์ชันEvalว่าสตริถูกนิพจน์จริง ฟังก์ชันEvalประเมินนิพจน์สตริง และส่งกลับค่า ตัวอย่างเช่นEval("1 + 1")ส่งกลับ 2

ถ้าคุณส่งไปยังฟังก์ชันEvalสตริงที่ประกอบด้วยชื่อของฟังก์ชัน ฟังก์ชันEvalส่งกลับค่าส่งกลับของฟังก์ชัน ตัวอย่างเช่นEval("Chr$(65)")ส่งกลับ "A"

ไวยากรณ์

Eval (ลบstringexpr)

อาร์กิวเมนต์stringexprคือนิพจน์ที่ประเมินเป็นสตริงข้อความพยัญชนะผสมตัวเลข ตัวอย่างเช่นstringexprอาจเป็นฟังก์ชันที่ส่งกลับสตริงที่หรือค่าตัวเลข หรืออาจเป็นการอ้างอิงถึงตัวควบคุม บนฟอร์ม อาร์กิวเมนต์stringexprต้องประเมินเป็นสตริงที่หรือค่าตัวเลข จะไม่สามารถประเมินเป็นแบบวัตถุ Microsoft Access

หมายเหตุ: ตัวอย่างที่ติดตามสาธิตการใช้ฟังก์ชันนี้ใน 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ในแบบตัวควบคุมที่มีการคำนวณ บนฟอร์มหรือรายงาน หรือ ในแมโครหรือมอดูล ฟังก์ชันEvalจะส่งกลับตัวโทนสีที่มีชนิดตัวเลขหรือสตริงข้อความ

อาร์กิวเมนต์stringexprต้องนิพจน์ที่ถูกเก็บไว้ในสตริงข้อความ ถ้าคุณส่งไปยังฟังก์ชันEvalสตริงที่ไม่ประกอบด้วยนิพจน์ตัวเลข หรือชื่อฟังก์ชัน แต่เฉพาะในสตริงข้อความอย่างง่ายข้อผิดพลาดขณะทำงาน เกิดขึ้น ตัวอย่างเช่นEval("Smith")ผลลัพธ์เป็นข้อผิดพลาด

คุณสามารถใช้ฟังก์ชันEvalเพื่อกำหนดค่าเก็บไว้ในคุณสมบัติค่าของตัวควบคุม ตัวอย่างต่อไปนี้ส่งผ่านสตริงที่ประกอบด้วยการอ้างอิงทั้งหมดลงในตัวควบคุมฟังก์ชัน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

ตัวอย่างถัดไปกำหนดว่า ค่าของตัวควบคุม ShipRegion บนฟอร์มใบสั่งซื้อเป็นตัวย่อสถานะที่ระบุหลายอย่างใดอย่างหนึ่ง ถ้าเขตข้อมูลประกอบด้วยค่าใดค่าหนึ่งในตัวย่อintStateจะเป็นจริง(– 1) โปรดสังเกตว่า คุณใช้เครื่องหมายอัญประกาศเดี่ยว (') เพื่อรวมสตริงที่ภายในสตริงที่อื่น

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

ตัวอย่าง

ตัวอย่างต่อไปนี้ถือว่า คุณมีชุดข้อมูลของฟังก์ชัน 50 สใช้สมการ A1, A2 และอื่น ๆ ตัวอย่างนี้ใช้ฟังก์ชันEvalเพื่อเรียกฟังก์ชันแต่ละรายการในชุดข้อมูล

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

ตัวอย่างต่อทริกเกอร์เหตุการณ์ที่คลิว่าผู้ใช้คลิกปุ่มบนฟอร์ม ถ้าค่าของคุณสมบัติเมื่อคลิกปุ่มเริ่มต้น ด้วยเครื่องหมายเท่ากับ (=), บ่งบอกว่า เป็นชื่อของฟังก์ชัน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 ของเรา

×