有没有比这更好的方法了? (假设所有变量都等于零)
If var1 = 0 Or var2 = 0 Or var3 = 0 Or var4 = 0 Or var5 = 0 Or var6 = 0 Then
'do something
End If
答案 0 :(得分:5)
您可以使用Select Case
进行操作。也会缩短评估(与If
语句不同):
Select Case 0
Case var1, var2, var3, var4, var5, var6
'do something
End Select
答案 1 :(得分:3)
您可以编写一个短路功能,当找到与条件匹配的值时,该功能会自动退出:
Public Function MatchesAny(ByVal value, ParamArray values()) As Boolean
Dim i As Long
For i = LBound(values) To UBound(values)
If values(i) = value Then
MatchesAny = True
Exit Function
End If
Next
End Function
现在您可以执行以下操作:
If MatchesAny(0, var1, var2, var3, var4, var5, var6) Then
如果在任何不符合条件的条件下需要纾困,那么可以使用逆逻辑来实现类似的功能:
Public Function MatchesAll(ByVal value, ParamArray values()) As Boolean
MatchesAll = True
Dim i As Long
For i = LBound(values) To UBound(values)
If values(i) <> value Then
MatchesAll = False
Exit Function
End If
Next
End Function
像这样使用:
If MatchesAll(0, var1, var2, var3, var4, var5, var6) Then