使用多个案例是<>

时间:2018-02-17 11:21:20

标签: excel vba excel-vba

早上好,下午给大家:

我在VBA中发表了如下声明:

Select Case MAAX(Fila, 1)
    Case Is <> 5, Is <> 10, Is <> 15, Is <> 20, Is <> 25, Is <> 30, Is <> 35, Is <> 40
            Do whatever
End Select

但它不起作用。出了什么问题?

2 个答案:

答案 0 :(得分:2)

如果“不工作”意味着CASE之后的陈述总是被执行,那么你可能会错误地解释该陈述是如何运作的:

  

如果testexpression与 ANY 案例表达式列表表达式匹配,则执行该Case子句后的语句...

几乎无论MAAX(Fila, 1)中的内容如何,​​它肯定会与您的至少一个条款匹配。

您需要重写CASE语句(或使用其他内容),以测试您真正想要的逻辑。

如果,你真正想要的是,你的测试值不是那些(5,10,......)中的任何一个,你可以做类似的事情

if v<>5 and v<>10 and v<>15 ...

或者,可能

 select case v mod 5
     case is <>0  'then it is not one of those in your list, 
                  'but it could be greater than 40, so you might have to test for that

答案 1 :(得分:1)

请参阅Ron的答案,以便对探测器进行详细解释。我个人会将您的代码更改为:

Select Case MAAX(Fila, 1)
    Case 5, 10, 15, 20, 25, 30, 35, 40
    Case Else
        'do something
End Select