选择带有可变布尔运算符的案例
Posted
技术标签:
【中文标题】选择带有可变布尔运算符的案例【英文标题】:select case with variable boolean operator 【发布时间】:2014-03-23 18:04:35 【问题描述】:这是我在论坛上的第一个问题,但是阅读以前的问题对我正在从事的项目非常有帮助,所以我已经很感谢了。我找不到这个问题的答案,但如果我忽略了一些事情,我深表歉意。
我正在 vba 中编写一个 excel 宏,并尝试创建一个 select case... 语句,其中表达式具有可变的布尔值和数字分量。例如,宏可以从另一个工作表中提取“> 3”或“
我希望我可以将所有这些参数分配给一个字符串,即:
test1 = "is " & BoolOperator1 & " " & NumericValue1
然后
Select case ValuetoCompare
Case test1
'Do something
Case test2
'...
有没有办法做到这一点?我想另一种方法是将带有数字变量的 case 嵌套在确定运算符的选择函数中,但我认为这会更优雅。
提前感谢您的指导--
乔什
【问题讨论】:
你能显示更多代码吗,我有点不清楚你要做什么 【参考方案1】:假设您将得到一个字符串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
【讨论】:
谢谢彼得。这是有道理的。以上是关于选择带有可变布尔运算符的案例的主要内容,如果未能解决你的问题,请参考以下文章