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.