VBA IIF - Hvordan bruke VBA IIF-funksjonen i Excel? (med eksempler)

Innholdsfortegnelse

Excel VBA IIF

Hvis du er en vanlig bruker av VBA-makroer, må du ha kommet over funksjonen kalt “IIF”, ellers har du kanskje sett denne funksjonen på internett. Ved første øyekast, for du må ha trodd at det er en IF-tilstand som vår vanlige IF-uttalelse i Excel. Men dette er ikke den samme HVIS-setningen vi bruker for å evaluere logiske tester og få resultater basert på kriteriene vi gir. I denne artikkelen tar vi deg gjennom "VBA IIF" -tilstanden i VBA.

Hva gjør IIF-tilstand i VBA?

Dette ligner veldig på HVIS-tilstanden vår, men litt annerledes. “VBA IIF” -tilstand tester det angitte uttrykket eller den logiske testen og returnerte enten SANT eller FALSK som et resultat.

VBA IIF syntaks

Ta en titt på syntaksen til IIF-funksjonen.

  • Uttrykk: Dette er ingenting annet enn den logiske testen vi ønsker å gjennomføre.
  • Ture-del: Hvis den logiske testen er SANT, hva skal da være den SANTE delen.
  • Falsk del: Hvis den logiske testen er FALSK, hva skal da være resultatet av den FALSE delen.

Vi kan legge inn våre egne resultater med SANTE & FALSE deler. Selv om argumentene ligner på IF-tilstanden, vil dette være litt annerledes. Vi vil se det i eksemplene på Excel VBA IIF-funksjon.

En av nøkkelforskjellene mellom vanlig "IF" og denne "IIF" er at vi kan redusere koden til en enkelt linje med Iwherewithwith IF condition, og det tar minst 5 linjer å komme til samme resultat.

Eksempel på VBA IIF-funksjon

Nedenfor er eksemplene på VBA IIF Funksjon i excel.

Eksempel # 1 - VBA IIF

Ok, vi får se et enkelt eksempel på IIF-funksjon. Nå skal vi teste om ett tall er større enn eller mindre enn til et annet tall. Følg trinnene nedenfor for å skrive VBA-koden.

Trinn 1: Start makroen.

Trinn 2: Definer variabelen som streng i VBA.

Kode:

Sub IIF_Example () Dim FinalResult Som String End Sub

Trinn 3: Definer to flere variabler som Lang i VBA.

Kode:

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

Trinn 4: Nå, for variabelen "Number1" tildel verdien 105 og for variabelen "Number2" tildel verdien 100.

Kode:

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

Trinn 5: Nå, for den første definerte variabelen, "FinalResult," vil vi tildele resultatet av IIF-funksjonen. Så åpne IIF for variabelen.

Trinn 6: Oppgi uttrykket som Number1> Number2.

Trinn 7: Hva skal resultatet være hvis uttrykket er SANT? Jeg vil tildele resultatet som “Nummer 1 er større enn nummer 2”.

Trinn 8: Hva skal resultatet være hvis uttrykket er FALSK? Jeg vil tildele resultatet som “Nummer 1 er mindre enn nummer 2”.

Nå vil variabelverdien være en av nedenstående.

Hvis det er sant: "Nummer 1 er større enn nummer 2."

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

Trinn 9: La oss vise resultatet i en meldingsboks 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 Streater than Number 2", "Number 1 is less than Number 2") MsgBox FinalResult End Sub

La oss nå kjøre koden og se resultatet.

Siden tallet 1 er 105, som er større enn tallet 2 på 100, fikk vi resultatet som "Nummer 1 er større enn nummer 2". Siden uttrykket er SANT, returnerte IIF-tilstanden dette resultatet.

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 funksjonene returnerer det samme resultatet, men med IIF kan vi bare kode i en enkelt linje, der IF-setningen krever flere linjer.

Eksempel # 3 - VBA nestet IIF-tilstand

Som hvordan vi bruker nestet IF for å teste flere forhold på samme måte, kan vi også bruke flere IIF. Ta en titt på koden nedenfor.

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

Ovennevnte IIF-tilstand tester fem logiske tester og returnerer resultatet deretter.

Interessante artikler...