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

时间:2018-05-02 10:07:37

标签: vba excel-vba eval excel

使用方括号进行字符串评估,我试图让[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

1 个答案:

答案 0 :(得分:2)

来自the link in the comment:"使用方括号(例如," [A1:C5]")与使用字符串参数调用Evaluate方法相同。&#34 ;

我读到这意味着:

Evaluate("20+10")相当于[20+10],其中Evaluate函数接受字符串并在评估之前转换为文字解释。

["20+10"]等同于评估字符串"20+10"

Debug.Print ["20"+"300"]的工作原因是因为VBA非常适合自动转换" 20"到20岁。