VBA IIF | Com s'utilitza la funció VBA IIF a Excel? (amb exemples)

Excel VBA IIF

Si sou l’usuari habitual de macros VBA, heu d’haver trobat la funció anomenada “IIF” o és possible que hagueu vist aquesta funció a Internet. A primera vista, ja que heu pensat que és una condició IF com la nostra declaració IF regular a Excel. Però aquesta no és la mateixa afirmació IF que fem servir per avaluar proves lògiques i obtenir resultats en funció dels criteris que donem. En aquest article, us mostrarem la condició "VBA IIF" de VBA.

Què fa la condició IIF a VBA?

Això és molt similar a la nostra condició IF, però de naturalesa lleugerament diferent. La condició "VBA IIF" prova l'expressió o la prova lògica subministrades i retorna TRUE o FALSE com a resultat.

Sintaxi VBA IIF

Mireu la sintaxi de la funció IIF.

  • Expressió: Això no és res més que la prova lògica que ens agradaria fer.
  • Part de Ture: Si la prova lògica és TRUE, quin ha de ser el resultat de la part TRUE.
  • Part falsa: Si la prova lògica és FALS, quin hauria de ser el resultat de la part FALSA.

Podem introduir els nostres propis resultats amb peces TRUE & FALSE. Tot i que els arguments semblen similars als de la condició IF, això serà lleugerament diferent. Ho veurem als exemples de la funció Excel VBA IIF.

Una de les diferències clau entre "IF" regular i aquest "IIF" és que podem reduir el codi a una sola línia amb IIF, on amb la condició IF es necessiten un mínim de 5 línies per arribar al mateix resultat.

Exemple de funció VBA IIF

A continuació es mostren els exemples de la funció VBA IIF en excel.

Podeu descarregar aquesta plantilla Excel VBA IIF aquí: plantilla Excel VBA IIF

Exemple 1: VBA IIF

D'acord, veurem un exemple senzill de funció IIF. Ara comprovarem si un número és superior o inferior a un altre número. Seguiu els passos següents per escriure el codi VBA.

Pas 1: Inicieu la macro.

Pas 2: Definiu la variable com a Cadena a VBA.

Codi:

 Sub IIF_Example () Dim FinalResult As String End Sub 

Pas 3: Definiu dues variables més com a llargues a VBA.

Codi:

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

Pas 4: Ara, per a la variable "Número1" assigneu el valor de 105 i per a la variable "Número2" assigneu el valor de 100.

Codi:

 Sub IIF_Example () Dim Final Result As String Dim Number1 As Long Dim Number 2 As Long Number1 = 105 Number2 = 100 End Sub 

Pas 5: Ara per a la primera variable definida "FinalResult" assignarem el resultat de la funció IIF. Obriu el IIF per a la variable.

Pas 6: Proporcioneu l'expressió com a Nombre1> Número2.

Pas 7: Ara bé, si l'expressió és CERT, quin hauria de ser el resultat. Assignaré el resultat com "El número 1 és superior al número 2".

Pas 8: Ara bé, si l’expressió és FALS, quin hauria de ser el resultat. Assignaré el resultat com "El número 1 és inferior al número 2".

Ara el valor de la variable serà un dels següents.

Si és cert: "El número 1 és superior al número 2"

Si és fals: "El número 1 és inferior al número 2"

Pas 9: Mostrem el resultat en un quadre de missatges de VBA.

Codi:

 Sub IIF_Example () Dim Resultat final com a cadena Nombre número 1 Tan llarg Nombre número2 Tan llarg Nombre1 = 105 Número2 = 100 FinalResult = IIf (Número1> Número2, "El número 1 és superior al número 2", "El número 1 és inferior al número 2") MsgBox FinalResult End Sub 

Ara executem el codi i veiem el resultat.

Com que el valor del número 1 és 105, que és superior al valor del número 2 de 100, hem obtingut el resultat com "El número 1 és superior al número 2". Com que l'expressió és TRUE, la condició IIF va retornar aquest resultat.

Exemple 2: IF vs IIF

Us heu de preguntar quina és la diferència entre IF i IIF. Sí, hi ha una diferència en la codificació. Per exemple, mireu el codi de condició IF.

Codi:

 Sub IIF_Example () Dim Resultat final Com cadena Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 then MsgBox "Number 1 is Maggiore than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If Finalitzar sub 

Utilitzant IF primer hem aplicat una prova lògica.

 Si Nombre1> Número2 Aleshores 

Llavors, si la prova lògica és certa, hem aplicat el resultat.

MsgBox "El número 1 és superior al número 2"

Llavors, si la prova lògica és falsa, hem aplicat els diferents resultats.

MsgBox "El número 1 és inferior al número 2"

Totes dues funcions retornen el mateix resultat, però amb IIF podem codificar només en una sola línia, on la sentència IF requereix diverses línies.

Exemple # 3: condició IIF imbricada VBA

Igual que com utilitzem IF imbricats per provar diverses condicions de manera similar, també podem utilitzar múltiples IIF. Mireu el codi següent.

Codi:

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

La condició IIF anterior posa a prova cinc proves lògiques i retorna el resultat en conseqüència.