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函數會傳回Variant 的字串或數值的類型。

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

若要存取通常無法在 Visual Basic for Applications (VBA) 模組中的運算式運算子,您可以使用Eval函數。例如,您無法使用 SQL 運算子之間...與直接在您的程式碼,但您可以使用這些傳遞給Eval函數在運算式中。

下一個範例會決定訂單表單上的 [送貨地區] 控制項的值是其中幾個指定的狀態縮寫。如果欄位包含的其中一個縮寫, intState會是True (– 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

下一個範例觸發Click事件,如果為使用者已經按一下表單上的按鈕。如果以等號 (=) 開頭的按鈕的OnClick屬性的值,為它Eval函數的名稱函數會呼叫的函數,相當於觸發按一下事件。如果該值不是以等號,請值必須命名巨集。[ DoCmd ] 物件的RunMacro方法執行命名巨集。

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

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×