2017-02-24 96 views
1

我正在构建一个应用程序,该应用程序必须解释由用户设置的一组指令,这些指令在运行时才会知道。评估大于x但小于x VBA

我通过使用评估函数实现这一目标,像这样:

Evaluate("5>4") 

返回true,正如人们所期望的那样。我的问题是我怎么评估以下语句:

5大于4,但小于10

我将与变量替换过程的数字。

我知道我可以将字符串分割成两个部分的阵列,并且单独地测试,但必须有通过一个参数来测试的一种方式。

+0

也许这样的Excel地址? '评估(“10> 5> 4”)' – gizlmo

+0

这是行不通的,因为评估(“10> 10> 4”)也返回True –

+0

我确信有一个原因,你不能使用和运算符,我能问问它是什么吗? – User632716

回答

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 
+0

惊人的。不知道SC –