VBA IIF - Kuidas kasutada VBA IIF-i funktsiooni Excelis? (koos näidetega)

Lang L: none (table-of-contents)

Exceli VBA IIF

Kui olete VBA makrode tavakasutaja, peate olema kohanud funktsiooni nimega "IIF" või võite seda funktsiooni Internetis näha. Esmapilgul võisite arvata, et see on IF-i tingimus nagu meie tavaline IF-lause Excelis. Kuid see pole sama IF-lause, mida kasutame loogiliste testide hindamiseks ja tulemuste saamiseks meie antud kriteeriumide alusel. Selles artiklis tutvustame teid VBA tingimuse „VBA IIF” kaudu.

Mida teeb IIF-i seisund VBA-s?

See on väga sarnane meie IF tingimustega, kuid olemuselt veidi erinev. „VBA IIF” tingimus testib kaasasolevat avaldist või loogilist testi ja tagastab tulemuseks kas TÕENE või VALE.

VBA IIF süntaks

Heitke pilk funktsiooni IIF süntaksile.

  • Väljend: see pole midagi muud kui loogiline test, mille tahaksime läbi viia.
  • Ture osa: kui loogiline test on TÕSI, siis milline peaks olema TÕSI osa.
  • Vale osa: kui loogiline test on FALSE, siis mis peaks olema FALSE osa tulemus.

Saame oma tulemused sisestada tõeliste ja valede osadega. Kuigi argumendid näevad välja sarnased IF tingimuse omaga, on see siiski veidi erinev. Näeme seda funktsiooni Exceli VBA IIF näidetes.

Üks peamisi erinevusi tavalise IF-i ja selle IIF-i vahel on see, et saame koodi lühendada ühele reale tingimusega Iwherewithw IF ja sama tulemuse saamiseks kulub vähemalt 5 rida.

Näide funktsioonist VBA IIF

Allpool on toodud näited VBA IIF-i funktsioonist excelis.

Näide # 1 - VBA IIF

Ok, näeme ühte lihtsat näidet IIF-funktsioonist. Nüüd testime, kas üks number on suurem või väiksem kui teine ​​number. VBA koodi kirjutamiseks järgige alltoodud samme.

1. samm: käivitage makro.

2. samm: määrake muutuja VBA-s stringiks.

Kood:

Alamfond IIF_Example () Dim FinalResult as String End Sub

3. samm: määrake VBA-s veel kaks muutujat pikkaks.

Kood:

Alamfond IIF_Näide () Dim FinalResult stringina hämaruse arv1 nii pikk hämara number2 kui pika otsa alam

4. samm: määrake muutujale „Number1” väärtus 105 ja muutujale „Number2” väärtus 100.

Kood:

Alam IIF_Näide () Dim FinalResult stringina hämarusnumber1 nii pikk hämarusnumber2 kui pikk arv1 = 105 number2 = 100 lõpp-alam

Samm 5: Nüüd määrame esimese määratletud muutuja "FinalResult" jaoks funktsiooni IIF tulemuse. Niisiis avage muutuja jaoks IIF.

6. samm: sisestage avaldis kui Number1> Number2.

7. samm: kui tulemus on tõene, siis milline peaks olema tulemus. Määran tulemuse järgmiselt: "Number 1 on suurem kui Number 2"

8. samm: kui avaldis on FALSE, siis milline peaks olema tulemus. Tulemuse määran järgmiselt: "Number 1 on väiksem kui Number 2".

Nüüd on muutuja väärtus üks järgmistest.

Kui tõene: „Number 1 on suurem kui arv 2.”

Kui vale: „Number 1 on väiksem kui arv 2.”

9. samm: näitame tulemust VBA teatekastis.

Kood:

II alamf_näide () Dim FinalResult stringina Dim Number1 nii pikk Dim Number2 nii pikk number1 = 105 number2 = 100 FinalResult = IIf (arv1> arv2, "number 1 on suurem kui arv 2", "arv 1 on väiksem kui arv 2") MsgBox FinalResult End Sub

Nüüd käivitame koodi ja näeme tulemust.

Kuna number 1 väärtus on 105, mis on suurem kui number 2 väärtus 100, saime tulemuseks "Number 1 on suurem kui arv 2". Kuna avaldis on TÕENE, andis IIF-i tingimus selle tulemuse.

Näide 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"

Mõlemad funktsioonid tagastavad sama tulemuse, kuid IIF-iga saame kodeerida ainult ühel real, kus IF-lause nõuab mitut rida.

Näide # 3 - VBA pesastatud IIF-i tingimus

Nagu see, kuidas me pesastatud IF-d mitme tingimuse sarnaseks testimiseks kasutame, võime kasutada ka mitut IIF-i. Heitke pilk allpool olevale koodile.

Kood:

II alamf_näide2 () Dim FinalResult stringina Hämarad märgid pikkade märkidena = 98 FinalResult = IIf (märgid> 90, "Dist", IIf (märgid> 80, "esimene", IIf (märgid> 70, "teine", IIf (märgid) > 60, "kolmas", "ebaõnnestunud")))) MsgBox FinalResult End Sub

Ülaltoodud IIF-i tingimus testib viit loogilist testi ja tagastab selle tulemuse.

Huvitavad Artiklid...