选择带有可变布尔运算符的案例

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

【讨论】:

谢谢彼得。这是有道理的。

以上是关于选择带有可变布尔运算符的案例的主要内容,如果未能解决你的问题,请参考以下文章

Scala集合

带有 LIKE 运算符的 Select 语句中的 MySQL 案例

Python 入门第四天

Python 入门第四天

2.5 三目运算符

趁着课余时间学点Python变量,基本数据类型,运算符