Vba 使用“IF”时,IF条件是否有任何限制;或;在vb中?

Vba 使用“IF”时,IF条件是否有任何限制;或;在vb中?,vba,vb6,vbscript,Vba,Vb6,Vbscript,在我的代码中,我想使用if条件。其中我想用“或”大约18次。 比如说 If a="something" or a="something" or a="something" or.........(up to 18 times)... then 'do nothing else 'do action end if [注意:a的值在循环的中每次都在变化] 所以我只想问一下,在有限的时间内,使用IF是否有任何限制。 或者有没有其他更好的方法来做到这一点 谢谢据我所知,以这种方式使用或是没有限

在我的代码中,我想使用if条件。其中我想用“或”大约18次。 比如说

If a="something" or a="something" or a="something" or.........(up to 18 times)... then
  'do nothing
else
  'do action
end if
[注意:a的值在循环的中每次都在变化] 所以我只想问一下,在有限的时间内,使用IF是否有任何限制。 或者有没有其他更好的方法来做到这一点


谢谢

据我所知,以这种方式使用
是没有限制的

<>但是,你可以考虑其他的编码方式。

使用Not否定条件 首先,如果您在第一种情况下不执行代码> <代码>,则考虑<强>使用<代码> < <代码>语句> /强>:< /p>
If Not True Then
'do somethin
'no else
End If
考虑使用选择案例

第二,如果你检查同一个变量,你可以考虑<强>使用<代码>选择案例<强>,但是如果你只有一个案例,在你的情况下似乎不合适。 尝试使用搜索 最后,如果要检查字符串,可能最好在数组中使用搜索(使用

应用程序。如果在Excel或中,则匹配
)或在字符串中使用

使用收藏或词典
[编辑]处理这个问题的另一个很好的方法是使用VBA的,并检查
a
是否存在(请参阅了解一些信息)。

这个答案只是对我对JMay的评论的详细阐述,完全归功于他。我认为原始海报的意思与他问题中的“某物”不同,
a
是循环变量

For each a in MyList

   Select Case a
   Case "something", "something2", "something3", "something4", "something5", _
        "something6", "something7", "something8", "something9", "something10", _
        "something11", "something12", "something13", "something14", "something15", _
        "something16", "something17", "something18"

       'DO NOTHING

   Case Else

       'do-something code goes here
       ' and here
       ' and here
       ' and here
   End Select

Next a

对我来说,看起来像是Select Case的canidate…
a
是一个变量,它被反复测试。@tcarvin:这就是我指出它存在的原因。然而,<代码>选择案例非常有用,当你有许多<代码>,如果(即几例),而你在这里有一个结果,所以我会考虑使用其他的解决方案(数组,字典…)。对于字符串比较,Like运算符甚至正则表达式匹配可能是一个更干净的选项,具体取决于测试的对象。一般来说:如果您必须询问系统的限制,那么可能有更好的方法。做得很好。我对
大小写
语法不够熟悉,我不记得你可以将逗号用作
运算符:)@JMax,那么你会更加欣赏这个构造。它也可以用于。我也有同样的问题。在两个“AND”之后,我得到了属性或方法错误。在我使用循环for循环中的10个条件的Case之后,它起了作用。