簡體   English   中英

如何在具有多個條件的excel VBA中編寫OR語句

[英]How to Write OR statement in excel VBA with multiple conditions

如何在具有多個條件的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

我嘗試使用簡單的street * address語句(注釋代碼),但它沒有進入真正的code.whats錯誤的代碼。

像這樣的東西:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM