如何在Excel VBA中写入多条件的OR语句

如何在Excel VBA中写入多条件的OR语句。 我试了一下

For i = 1 To 30 a = Sheets("Interface").Range("A" & i).Value If (Sheets("Interface").Range("A" & i).Value Like "Street*name") Or _ (UCase(Sheets("Interface").Range("A" & i).Value) Like "Street*address") Or _ (UCase(Sheets("Interface").Range("A" & i).Value) Like "address") Then 'If a Like "*Street*address*" Then Sheets("Interface").Range("B" & i).Value = "STREETNAME" End If Next i 

我用简单的街道*地址声明(评论代码)尝试了它,但没有得到真正的代码。这个代码有什么问题。

像这样的东西:

 For i = 1 To 30 a = UCase(Sheets("Interface").Range("A" & i).Value) If a Like "STREET*NAME" Or a Like "STREET*ADDRESS" Or _ a Like "ADDRESS" Then Sheets("Interface").Range("B" & i).Value = "STREETNAME" End If Next i 

VB / VBA的问题在于,如果你写这样的复合语句,VB会评估每一个条件,即使第一个条件是真的。 它不会短路。

这有点不合常规,但是如果你想要一个短路方法,你可以使用Select Case,如下所示:

 Select Case True Case a Like b, _ a Like c, _ a Like d, _ Debug.Print "True" Case Else Debug.Print "False" End Select