Vba 使用“IF”时,IF条件是否有任何限制;或;在vb中?
在我的代码中,我想使用if条件。其中我想用“或”大约18次。 比如说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 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之后,它起了作用。