我正在构建一个应用程序,它必须解释用户设置的一组指令,这些指令在运行时才会知道。
我通过使用Evaluate函数实现了这一点,如下所示:
Evaluate("5>4")
正如人们所料,它返回True。我的问题是如何评估以下声明:
5大于4,但小于10
当然,我将用变量代替数字。
我意识到我可以将字符串拆分为两个部分的数组并单独测试,但必须有一种方法可以将一个参数传递给test。
答案 0 :(得分:2)
Application.Evaluate
评估公式为AND(5>A4,5<10)
或(5>A4)*(5<10)
(结果为0或1)
另一个替代方案可能是ScriptControl Eval
,但无法访问Evaluate
With CreateObject("ScriptControl")
.Language = "VBScript" ' either VBScript or JScript
Debug.Print .Eval("5>4 and 5<10")
End With