VBA IIF - Come utilizzare la funzione VBA IIF in Excel? (Modello scaricabile)

Sommario:

Anonim

Funzione Excel VBA IIF

VBA IIF (noto anche come Immediate If) è un'affermazione che potresti aver visto spesso durante la codifica in VBA e la creazione di macro. È simile alla funzione IF di Excel in cui si annota una condizione logica e fornisce due output, se la condizione è vera e se la condizione è falsa. Se guardandolo lo stai pensando come una funzione simile a VBA IF che utilizziamo per valutare test e condizioni logici, ti sbagli. Sembra essere vicino a VBA Se e idealmente, si può dire che hanno davvero una piccola differenza tra loro durante l'esecuzione. In questo articolo, avremo maggiori informazioni sulla dichiarazione VBA IIF e su come usarla nella nostra vita di programmazione quotidiana per semplificare i nostri compiti.

L'istruzione VBA IIF funziona in modo simile all'istruzione IF di Excel. Verifica la condizione o l'istruzione logica fornita e fornisce l'output associato alla condizione TRUE o quando la condizione è FALSE.

Sintassi di IIF in Excel VBA

La sintassi per la funzione VBA IIF in Excel è la seguente:

Dove,

  • Espressione: è la condizione logica che volevamo valutare sotto la funzione IIF
  • TruePart: è il valore / output che ci aspettiamo, quando la condizione / espressione logica è TRUE.
  • FalsePart: è il valore / output che ci aspettiamo, quando la condizione / espressione logica è FALSE.

Come usare Excel VBA IIF?

Ora proviamo con alcuni esempi su VBA IIF in Excel.

Puoi scaricare questo modello Excel VBA IIF qui - Modello Excel VBA IIF

Facciamo un semplice esempio per vedere come IIF funziona con Microsoft VBA.

Esempio n. 1 - VBA IIF

Passaggio 1: aprire un Visual Basic Editor (VBE). Vai alla scheda Inserisci e fai clic su Modulo . Aggiungerà un nuovo modulo sotto VBE.

Passaggio 2: definire una nuova procedura secondaria che può contenere la macro in questo modulo.

Codice:

 Sub IIf_Ex1 () End Sub 

Passaggio 3: definire due nuove variabili Var_1 come Long e Result con il tipo di dati come variante.

Codice:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Risultato as Boolean End Sub 

Passaggio 4: assegnare un valore numerico a Var_1 in modo che possiamo utilizzare questa variabile per verificare la condizione IIF logica.

Codice:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Risultato as Boolean var_1 = 5 End Sub 

Passaggio 5: utilizzare la variabile Risultato per archiviare la condizione IIF logica in base alla quale verrà verificato se il valore assegnato a Var_1 è maggiore o uguale a 10.

Codice:

 Sub IIf_Ex1 () Dim var_1 As Long Dim Risultato as Boolean var_1 = 5 Risultato = IIf (var_1> = 10, True, False) End Sub 

Passaggio 6: ora utilizzare Debug.Print per stampare il risultato della condizione IIF sul riquadro del visualizzatore dei risultati immediati.

Codice:

 Sub IIf_Ex1 () Dim var_1 Come lungo Dim Risultato come booleano var_1 = 5 Risultato = IIf (var_1> = 10, True, False) Debug.Print Result End Sub 

Passaggio 7: eseguire questo codice premendo F5 o il pulsante Esegui nella parte superiore del riquadro e visualizzare l'output nel riquadro Output immediato.

Esempio n. 2 - VBA IIF

Supponiamo di avere i dati nel foglio di lavoro come segue:

Tutto ciò che vogliamo è un output sotto la colonna B in modo tale che il numero sia pari o dispari.

Passaggio 1: definire una nuova procedura secondaria in VBE.

Codice:

 Sub IIF_Ex2 () End Sub 

Passaggio 2: definire due variabili "a" e "Numbers" come Long.

Codice:

 Sottotitolo IIF_Ex2 () Dim a come numero dim lungo come sottotitolo lungo 

Passaggio 3: avviare un ciclo For sotto il quale si desidera eseguire il loop di tutti i valori presenti nella cella A2: A11. Il ciclo inizierà da 2 a 11 (perché abbiamo le intestazioni nella riga 1 per le colonne A e B).

Codice:

 Sub IIF_Ex2 () Dim a as long long dim numero long a a = 2-11 end fine sub 

Passaggio 4: utilizzare la variabile numerica definita in precedenza per memorizzare tutti i numeri dalla colonna A che variano nell'intervallo specificato utilizzando l'operatore di assegnazione (A2: A11). Utilizzare la seguente riga di codice per farlo.

Numero = Foglio1.Range ("A" e a)

Codice:

 Sottotitolo IIF_Ex2 () Dim a un numero Dim lungo come lungo Per a = 2 a 11 Numero = Foglio1.Range ("A" & a) End Sub 

Questa riga di codice consente a VBA di scorrere tutte le righe della colonna A da "Foglio1" in Excel una ad una in ciclo For.

Passaggio 5: utilizzare IIF per verificare se ogni valore di cella è pari o dispari e memorizzare i risultati sotto ciascuna cella della colonna B. Seguire la riga di codice farà il compito per te.

Sheet1.Range (“B” & a) .Value = IIf (Number Mod 2 = 0, “Even”, “Odd”)

Codice:

 Sottotitolo IIF_Ex2 () Dim a as Dim lungo Numero lungo quanto a a = 2 a 11 Numero = Foglio1.Range ("A" & a) Foglio1.Range ("B" & a) .Valore = IIf (Numero Mod 2 = 0, "Even", "Odd") End Sub 

Qui, in questa riga, vogliamo che i risultati vengano archiviati sotto ciascuna cella della colonna B da Foglio1. Pertanto abbiamo usato "Sheet1.Range (" B "& i) .Value" sul lato sinistro del pezzo di codice. Abbiamo usato IIF per verificare se il numero è divisibile per 2 usando Mod (operatore Modulo sotto VBA). Infine, vogliamo l'output se il numero è pari o dispari nella colonna B. Pertanto, questi due valori sono menzionati nell'istruzione IIF.

Passaggio 6: chiudere l'istruzione For con Next in modo che dopo ogni iterazione, il sistema si sposterà verso la cella successiva nel foglio, fino a raggiungere l'undicesima riga.

Codice:

 Sottotitolo IIF_Ex2 () Dim a as Dim lungo Numero lungo quanto a a = 2 a 11 Numero = Foglio1.Range ("A" & a) Foglio1.Range ("B" & a) .Valore = IIf (Numero Mod 2 = 0, "Pari", "Dispari") Sottotitolo successivo 

Passaggio 7: eccolo. Esegui questo codice premendo F5 o il pulsante Esegui posizionato nel riquadro superiore di VBE. Una volta eseguita questa macro, vedrai un output come sotto nel foglio1 (chiamato "Esempio_1") della cartella di lavoro di Excel.

Esempio n. 3 - VBA IIF

Vedremo ora una dichiarazione IIF nidificata:

Questo è lo stesso modo in cui annidiamo più condizioni IF in un singolo loop.

Supponi gli stessi dati che abbiamo usato nel caso precedente. Tutto quello che volevamo è scrivere un codice che ci permettesse di distinguere i numeri come segue:

  • Se il numero è compreso tra 1 e 3 (3 inclusi), nella colonna B. dovrebbe essere indicato "Piccolo".
  • Se il numero è compreso tra 4 e 6 (6 inclusi), nella colonna B. dovrebbe essere indicato "Medio".
  • Se il numero è compreso tra 7 e 10 (10 inclusi), dovrebbe essere indicato "Grande" nella colonna B.

Scriviamo un codice per questo tipo di IIF:

Passaggio 1: definire una nuova procedura secondaria nel VBE che può contenere la macro.

Codice:

 Sub NestedIf () End Sub 

Seguire i passaggi da 2 a 4 come nell'esempio sopra (esempio 2 in questo articolo). Include la definizione delle variabili e l'aggiunta di tutti i numeri presenti nella colonna A in un ciclo For.

Passaggio 5: utilizzare il seguente codice per ottenere l'output desiderato.

Codice:

 Sub NestedIf () Numero fioco lungo per a = da 2 a 11 Numero = Sheet2.Range ("A" e a) Sheet2.Range ("B" & a) .Value = IIf (Number = 7, "Large", " Medio ")) End Sub 

Passaggio 6: chiudere l'istruzione For con Next ed eseguire questo codice utilizzando il pulsante F5 o Esegui presente nella barra superiore in VBE. Una volta eseguito il codice, vedrai l'output come di seguito:

Qui, in questo codice, viene utilizzato l'IIF nidificato. Sotto il primo IIF, ci viene dato ciò che dovrebbe essere stampato sotto la colonna B quando i numeri sono compresi tra 1 e 3. Sotto il secondo IIF, abbiamo menzionato ciò che dovrebbe essere stampato sotto la colonna B quando i numeri sono maggiori o uguali a 7 e sotto il stesso IIF, abbiamo fornito ciò che dovrebbe essere stampato nella colonna B quando i numeri non sono compresi tra 1 e 3 e 7 e 10.

In questo modo, possiamo aggiungere più IIF con lo stesso codice e annidarli. Questo è da questo articolo. Concludiamo con alcune cose da ricordare.

Cose da ricordare

  • IIF valuta sempre entrambe le parti (VERO e FALSO) per una condizione particolare. Tuttavia, stampa la parte FALSE solo quando nulla è VERO.
  • La scrittura è abbreviata rispetto a quella delle istruzioni If-Else standard.
  • Non è ben noto, quindi alcuni utenti potrebbero non capire il tuo codice se hai usato IIF invece di If-Else convenzionale.

Articoli consigliati

Questa è una guida a VBA IIF. Qui discutiamo come usare Excel VBA IIF insieme ad esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Lavorare con VBA Active Cell
  2. Eliminazione di una riga in VBA
  3. Come utilizzare Excel VBA Transpose?
  4. Come risolvere l'errore 1004 utilizzando VBA