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