VBA IIF - Hvordan bruges VBA IIF-funktion i Excel? (med eksempler)

Indholdsfortegnelse

Excel VBA IIF

Hvis du er en almindelig bruger af VBA-makroer, skal du have stødt på funktionen kaldet “IIF”, ellers har du måske set denne funktion på internettet. Ved første øjekast, for du må have troet, at det er en IF-tilstand som vores almindelige IF-erklæring i Excel. Men dette er ikke den samme IF-sætning, som vi bruger til at evaluere logiske tests og opnå resultater baseret på de kriterier, vi giver. I denne artikel tager vi dig gennem tilstanden “VBA IIF” i VBA.

Hvad gør IIF-tilstand i VBA?

Dette ligner meget vores IF-tilstand, men lidt anderledes. "VBA IIF" -tilstand tester det leverede udtryk eller den logiske test og returnerede enten SAND eller FALSK som resultat.

VBA IIF syntaks

Se på syntaksen for IIF-funktionen.

  • Udtryk: Dette er intet andet end den logiske test, vi gerne vil gennemføre.
  • Ture-del: Hvis den logiske test er SAND, hvad skal så være den SANDE del.
  • Falsk del: Hvis den logiske test er FALSK, hvad skal der så være resultatet af den FALSE del.

Vi kan indtaste vores egne resultater med SANDE & FALSKE dele. Selvom argumenter ligner den for IF-tilstanden, vil dette være lidt anderledes. Vi ser det i eksemplerne på Excel VBA IIF-funktion.

En af nøgleforskellene mellem almindelig "IF" og denne "IIF" er, at vi kan reducere koden til en enkelt linje med Iwherewithwith IF-tilstand, og det tager mindst 5 linjer at nå det samme resultat.

Eksempel på VBA IIF-funktion

Nedenfor er eksemplerne på VBA IIF-funktion i Excel.

Eksempel # 1 - VBA IIF

Ok, vi ser et enkelt eksempel på IIF-funktion. Nu vil vi teste, om et tal er større end eller mindre end et andet nummer. Følg nedenstående trin for at skrive VBA-koden.

Trin 1: Start makroen.

Trin 2: Definer variablen som streng i VBA.

Kode:

Sub IIF_Example () Dim FinalResult Som streng End Sub

Trin 3: Definer to yderligere variabler som Lang i VBA.

Kode:

Sub IIF_Example () Dim FinalResult Som streng Dim Number1 Som Long Dim Number2 Som Long End Sub

Trin 4: Nu tildeles værdien 105 for variablen "Number1" og for variablen "Number2" tildeles værdien 100.

Kode:

Sub IIF_Example () Dim FinalResult Som streng Dim Number1 Som Long Dim Number2 Som Long Number1 = 105 Number2 = 100 End Sub

Trin 5: Nu tildeler vi den første definerede variabel, "FinalResult", resultatet af IIF-funktionen. Så åbn IIF for variablen.

Trin 6: Angiv udtrykket som Number1> Number2.

Trin 7: Hvad skal resultatet være, hvis udtrykket er SAND? Jeg tildeler resultatet som “Nummer 1 er større end nummer 2”.

Trin 8: Hvad skal resultatet være, hvis udtrykket er FALSK? Jeg tildeler resultatet som "Nummer 1 er mindre end nummer 2".

Nu vil variabelværdien være en af ​​nedenstående.

Hvis det er sandt: "Nummer 1 er større end nummer 2."

Hvis falsk: "Nummer 1 er mindre end nummer 2."

Trin 9: Lad os vise resultatet i en meddelelsesboks i VBA.

Kode:

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

Lad os nu køre koden og se resultatet.

Da nummer 1-værdien er 105, hvilket er større end nummer 2-værdien på 100, fik vi resultatet som "Nummer 1 er større end nummer 2". Da udtrykket er SAND, returnerede IIF-betingelsen dette resultat.

Eksempel 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"

Begge funktioner returnerer det samme resultat, men med IIF kan vi kun kode i en enkelt linje, hvor IF-sætningen kræver flere linjer.

Eksempel # 3 - VBA nestet IIF-tilstand

Ligesom hvordan vi bruger indlejret IF til at teste flere forhold på samme måde, kan vi også bruge flere IIF. Se på nedenstående kode.

Kode:

Sub IIF_Example2 () Dim FinalResult Som 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

Ovenstående IIF-tilstand tester fem logiske tests og returnerer resultatet i overensstemmelse hermed.

Interessante artikler...