Vba: utilizzare if or per testare più condizioni


È possibile utilizzare la seguente sintassi di base in VBA con IF e OR per verificare se sono soddisfatte più condizioni:

 Sub IfOrTest()
    If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
    Range(" C2 ").Value = " Yes! "
    Else
    Range(" C2 ").Value = " No. "
   End If
End Sub

Questo particolare esempio controlla se il valore nella cella A2 è uguale a “Guerrieri” o se il valore nella cella B2 è maggiore di 100.

Se una delle due condizioni è soddisfatta, il valore “Sì!” » viene restituito nella cella C2 .

Altrimenti il valore “No”. viene restituito alla cella C2 .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Correlati: VBA: utilizzare IF AND per testare più condizioni

Esempio: utilizzare IF AND per testare più condizioni in VBA

Supponiamo di avere i seguenti dati in Excel:

Supponiamo di voler determinare se il nome della squadra è Warriors o se il valore dei punti è maggiore di 100 e restituire il risultato nella cella C2 .

Per fare ciò possiamo creare la seguente macro:

 Sub IfOrTest()
    If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
    Range(" C2 ").Value = " Yes! "
    Else
    Range(" C2 ").Value = " No. "
   End If
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

La macro restituisce correttamente il valore “Sì!” » nella cella C2 poiché almeno una delle condizioni è stata soddisfatta.

Se modifichiamo il valore dei punti nella cella A2 e quindi eseguiamo nuovamente la macro, verificherà se entrambe le condizioni sono soddisfatte per i nuovi valori:

Ad esempio, supponiamo di cambiare il nome della squadra in “Rockets” ed eseguire nuovamente la macro:

La macro restituisce correttamente il valore “No”. nella cella C2 poiché nessuna delle due condizioni è stata soddisfatta.

Se invece desideri visualizzare i risultati in una finestra di messaggio, puoi utilizzare la seguente sintassi:

 Sub IfOrTest()
    If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
    MsgBox “ Yes!Else
    MsgBox “ No.End If
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

La finestra di messaggio restituisce “No”. poiché nessuna delle due condizioni è stata soddisfatta.

Nota : in questo esempio, abbiamo utilizzato l’operatore Or solo una volta nella nostra macro per verificare se due condizioni erano vere, ma puoi utilizzare tutti gli operatori Or che desideri per verificare se vengono soddisfatte più di due condizioni.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come utilizzare CERCA.VERT
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come verificare se una stringa contiene un’altra stringa

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *