这是我在论坛上的第一个问题,但阅读之前的问题对我正在进行的项目非常有帮助,所以我已经感谢了。我无法找到答案,但如果我忽略了某些事情,我会道歉。
我正在vba中编写一个excel宏,并且我正在尝试创建一个select case ...语句,其中表达式具有变量boolean和numeric组件。例如,宏可以拉动"> 3"或"< 3"从另一个工作表。
我希望我可以将所有这些参数分配给一个字符串,即:
test1 = "is " & BoolOperator1 & " " & NumericValue1
然后
Select case ValuetoCompare
Case test1
'Do something
Case test2
'...
有办法做到这一点吗?我想替代方法是将case与数字变量嵌套在确定运算符的select函数中,但我认为这样会更优雅。
提前感谢您的指导 -
约什
答案 0 :(得分:0)
假设您将获得一个有效运算符的字符串BoolOperator1
,例如>=
,=
和数值NumericValue1
,在另一个数值ValueToCompare
上执行此比较的最简单方法是使用Evaluate
函数。这将执行一个字符串作为VBA并返回它的结果。
在您的情况下,您可以简单地使用:
If Evaluate(ValueToCompare&BoolOperator1&NumericValue1) Then ...
如果你想在Select Case
语句中使用它,你需要使用一个简单的If ... ElseIf ...
语句 - 或者使用这个技巧:
Select Case True
Case Evaluate(ValueToCompare&BoolOperator1&NumericValue1): ...
Case Evaluate(ValueToCompare&BoolOperator2&NumericValue2): ...
Case Else ...
End Select