Come utilizzare la funzione if nidificata di vba?
In VBA è possibile utilizzare un’istruzione IF all’interno di un’altra istruzione IF per creare IF nidificati. In parole semplici, puoi eseguire un’istruzione di test utilizzando IF in base al risultato di un’altra istruzione IF. In questo tipo di istruzione condizionale, è necessario testare condizioni complesse. Vediamo un esempio:
Nell’esempio sopra, stiamo testando due condizioni, condizione1 (1 + 1 = 2) e condizione2 (2 + 2 = 4).
Ma poiché siamo l’istruzione IF all’interno dell’istruzione IF, VBA testerà prima la prima condizione e poi passerà alla successiva IF.
Nel secondo IF abbiamo una finestra di messaggio per mostrare se la condizione è VERA.
Sub myMacro1() 'first if statement If 1 + 1 = 2 Then 'second if statement If 2 + 2 = 4 Then MsgBox True End If Else MsgBox False End If End Sub
Ecco un esempio di utilizzo di più IF in un IF.
C’è una differenza tra l’esempio utilizzato in precedenza e quello riportato sopra: in questo codice abbiamo utilizzato una condizione nidificata per “Else”.
Se la prima condizione non è vera, VBA passerà a “Else” e testerà la condizione e, se tale condizione non è vera, passerà a quella successiva.
In questo modo abbiamo un totale di quattro condizioni da testare.
Sub myMacro2() Dim myScore As Single: myScore = Range("A1").Value If myScore >= 80 Then MsgBox "Excellent" Else If myScore >= 60 And myScore < 80 Then MsgBox "Good" Else If myScore >= 40 And myScore < 60 Then MsgBox "Average" Else If myScore < 40 Then MsgBox "Poor" End If End If End If End If End Sub
Questa istruzione IF annidata verificherà il punteggio della cella A1 e visualizzerà di conseguenza una finestra di messaggio.
IF nidificato VBA con più righe (IF)
Puoi anche utilizzare due IF diversi per ottenere entrambi i risultati (Vero e Falso).
Nell’esempio sopra, come puoi vedere, prima abbiamo una condizione da testare, e se quella condizione è VERA, allora hai un’altra condizione da testare, e se la seconda condizione è VERA, otterrai una finestra di messaggio.
E se la condizione principale è falsa, hai un’altra condizione da testare e riceverai una finestra di messaggio se quella condizione è vera.
Sub myMacro3() If 1 + 1 = 2 Then If 2 - 1 = 1 Then MsgBox "Condition1 is TRUE." End If Else If 3 - 2 = 1 Then MsgBox "Condition2 is TRUE." End If End If End Sub