VBA IIF - Come utilizzare la funzione VBA IIF in Excel? (con esempi)

Sommario

Excel VBA IIF

Se sei un utente abituale di macro VBA, devi esserti imbattuto nella funzione chiamata "IIF" o potresti aver visto questa funzione su Internet. A prima vista, perché devi aver pensato che sia una condizione IF come la nostra normale istruzione IF in Excel. Ma questa non è la stessa istruzione IF che usiamo per valutare i test logici e ottenere risultati in base ai criteri che diamo. In questo articolo, ti guideremo attraverso la condizione "VBA IIF" in VBA.

Cosa fa la condizione IIF in VBA?

Questo è molto simile alla nostra condizione IF ma di natura leggermente diversa. La condizione “VBA IIF” verifica l'espressione fornita o il test logico e restituisce come risultato TRUE o FALSE.

Sintassi VBA IIF

Dai un'occhiata alla sintassi della funzione IIF.

  • Espressione: questo non è altro che il test logico che vorremmo condurre.
  • Ture Part: Se il test logico è VERO, allora quale dovrebbe essere la parte VERO.
  • Parte falsa: se il test logico è FALSO, quale dovrebbe essere il risultato della parte FALSE.

Possiamo inserire i nostri risultati con parti VERO e FALSO. Sebbene gli argomenti siano simili a quelli della condizione IF, questo sarà leggermente diverso. Lo vedremo negli esempi della funzione Excel VBA IIF.

Una delle differenze chiave tra il normale "IF" e questo "IIF" è che possiamo ridurre il codice a una singola riga con Iwherewith IF condition, e ci vogliono almeno 5 righe per ottenere lo stesso risultato.

Esempio di funzione VBA IIF

Di seguito sono riportati gli esempi della funzione VBA IIF in Excel.

Esempio n. 1 - VBA IIF

Ok, vedremo un semplice esempio di funzione IIF. Ora testeremo se un numero è maggiore o minore di un altro numero. Segui i passaggi seguenti per scrivere il codice VBA.

Passaggio 1: avvia la macro.

Passaggio 2: definire la variabile come stringa in VBA.

Codice:

Sub IIF_Example () Dim FinalResult As String End Sub

Passaggio 3: definire altre due variabili come Long in VBA.

Codice:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub

Passaggio 4: Ora, per la variabile "Numero1" assegnare il valore di 105 e per la variabile "Numero2" assegnare il valore di 100.

Codice:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Passaggio 5: ora, per la prima variabile definita, "FinalResult", assegneremo il risultato della funzione IIF. Quindi apri l'IIF per la variabile.

Passaggio 6: fornire l'espressione come Numero1> Numero2.

Passaggio 7: ora, se l'espressione è TRUE, quale dovrebbe essere il risultato. Assegnerò il risultato come "Il numero 1 è maggiore del numero 2".

Passaggio 8: ora, se l'espressione è FALSA, quale dovrebbe essere il risultato. Assegnerò il risultato come "Il numero 1 è inferiore al numero 2".

Ora il valore della variabile sarà uno dei seguenti.

Se True: "Il numero 1 è maggiore del numero 2."

Se False: "Il numero 1 è inferiore al numero 2."

Passaggio 9: mostriamo il risultato in una finestra di messaggio in VBA.

Codice:

Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 is Greater than Number 2", "Number 1 is less than Number 2") MsgBox FinalResult End Sub

Ora eseguiamo il codice e vediamo il risultato.

Poiché il valore del numero 1 è 105, che è maggiore del valore del numero 2 di 100, abbiamo ottenuto il risultato come "Il numero 1 è maggiore del numero 2". Poiché Expression è TRUE, la condizione IIF ha restituito questo risultato.

Esempio # 2 - IF vs IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

Entrambe le funzioni restituiscono lo stesso risultato, ma con IIF possiamo codificare solo in una singola riga, dove l'istruzione IF richiede più righe.

Esempio n. 3 - Condizione IIF annidata VBA

Analogamente a come utilizziamo IF annidato per testare più condizioni in modo simile, possiamo anche utilizzare più IIF. Dai un'occhiata al codice sottostante.

Codice:

Sub IIF_Example2 () Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub

La condizione IIF di cui sopra verifica cinque test logici e restituisce il risultato di conseguenza.

Articoli interessanti...