早上好,下午给大家:
我在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
但它不起作用。出了什么问题?
答案 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