如何在VBA中使用方括号进行字符串求值?

Vit*_*ata 5 excel vba eval excel-vba

使用方括号进行字符串评估,我试图[inputString]返回320.有什么想法怎么做?

Public Sub TestMe()

    Dim inputString As String
    inputString = "20+300"
    Debug.Print Application.Evaluate(inputString)   'ok
    Debug.Print Evaluate([inputString])             'ok
    Debug.Print [20+300]                            'ok
    Debug.Print ["20"+"300"]                        'ok
    Debug.Print ["20"+300]                          'ok
    Debug.Print [inputString]                       'returns "20+300" and not 320

End Sub
Run Code Online (Sandbox Code Playgroud)

jam*_*art 2

评论中的链接:“使用方括号(例如,“[A1:C5]”)与使用字符串参数调用 Evaluate 方法相同。”

我读到的意思是:

Evaluate("20+10")相当于[20+10]Evaluate 函数在求值之前获取字符串并转换为文字解释。

["20+10"]相当于评估一个字符串"20+10"

之所以Debug.Print ["20"+"300"]有效,是因为 VBA 非常擅长将“20”自动转换为 20。