Excel VBA IIF funktsioon
VBA IIF (tuntud ka kui kohene If) on avaldus, mida võisite sageli VBA all kodeerides ja makrosid luues näha. See on sarnane Exceli IF-funktsiooniga, kus kirjutate loogilise tingimuse üles ja annab kaks väljundit, kui tingimus on tõene ja kui tingimus on vale. Kui te seda vaatate, peate seda VBA IF-ga sarnaseks funktsiooniks, mida me kasutame loogiliste testide ja tingimuste hindamiseks, olete eksinud. See näib olevat VBA-le lähedane Ja ideaalis võib öelda, et täitmise ajal on neil tõesti väike erinevus. Selles artiklis saame lisateavet VBA IIF avalduse ja selle kasutamise kohta meie igapäevases kodeerimises, et meie ülesandeid lihtsamaks muuta.
VBA IIF-i väljavõte töötab sarnaselt Excel IF-i väljavõttele. See kontrollib esitatud tingimust või loogilist avaldust ja annab väljundi, mis on kas seotud tingimusega TÕEN või kui tingimus on VABA.
IIF-i süntaks Excel VBA-s
VBA IIF funktsiooni süntaks on excelis järgmine:
Kus,
- Lause: on loogiline seisund, mida me tahtsime hinnata IIF funktsiooni alusel
- TruePart: on väärtus / väljund, mida me ootame, kui loogiline tingimus / avaldis on TRUE.
- FalsePart: on väärtus / väljund, mida me ootame, kui loogiline tingimus / avaldis on FALSE.
Kuidas kasutada Excel VBA IIF?
Proovime nüüd mõne näitega VBA IIF-ist Excelis.
Selle VBA IIF Exceli malli saate alla laadida siit - VBA IIF Exceli mallVõtame lihtsa näite, kuidas IIF töötab Microsofti VBA all.
Näide nr 1 - VBA IIF
1. samm: avage Visual Basic Editor (VBE). Minge vahekaardile Lisa ja klõpsake moodulit . See lisab uue mooduli VBE alla.
2. samm: määratlege uus alamprotseduur, mis võib selles moodulis teie makrot hoida.
Kood:
Sub IIf_Ex1 () Lõpp Sub
3. samm: määratlege kaks uut muutujat Var_1 kui pikka ja tulemust andmetüübiga variandina.
Kood:
Sub IIf_Ex1 () Dim var_1 Sama pikk Dim Tulemus nagu Boolean End Sub
4. samm: määrake Var_1-le arvuline väärtus, et saaksime seda muutujat kasutada loogilise IIF-i tingimuse kontrollimiseks.
Kood:
Sub IIf_Ex1 () Hämar var_1 Sama pikk kui Päike Tulemus Loogiline var_1 = 5 Lõpp alam
5. samm. Kasutage muutujat Result, et salvestada loogiline IIF-i tingimus, mille alusel kontrollime, kas Var_1-le määratud väärtus on suurem või võrdne 10-ga.
Kood:
Sub IIf_Ex1 () Dim var_1 Sama pikk Dim Tulemus Boolean var_1 = 5 Tulemus = IIf (var_1> = 10, True, False) End Sub
6. samm: kasutage rakendust Debug.Print, et printida IIF-i tulemus kohesele tulemuste vaataja paanile.
Kood:
Sub IIf_Ex1 () Dim var_1 Nii pikk Dim Tulemus Nagu Boolean var_1 = 5 Result = IIf (var_1> = 10, True, False) Silumine.Vahenduse tulemus Lõpp Sub
7. samm. Käivitage see kood, vajutades paani ülaosas nuppu F5 või Käivita ja vaadake väljundit kohese väljundi paanil.
Näide 2 - VBA IIF
Oletame, et meil on töölehe andmed järgmised:
Soovime ainult veerus B olevat väljundit, nii et arv on paaris või paaritu.
1. samm: määratlege uus alaprotseduur VBE-s.
Kood:
Alam IIF_Ex2 () lõpp alam
2. samm: määratlege kaks muutujat „a” ja „arv”.
Kood:
Alam IIF_Ex2 () hämardada sama pikk hämardus kui pikk ots
3. samm: käivitage a silmuse jaoks, mille all tahame silmustada kõik lahtris A2: A11 olevad väärtused. Ahel algab 2.-11. (Kuna meil on 1. ja 2. veerus päised A ja B).
Kood:
Alam IIF_Ex2 () hämardage nii kaua, kui pikka summutamist, kui a = 2 kuni 11, alam alam
4. samm. Kasutage varem määratletud numbrimuutujat, et salvestada kõik veerus A olevad numbrid, mis varieeruvad antud vahemikus, kasutades määramisoperaatorit (A2: A11). Selleks kasutage järgmist koodirida.
Number = leht1.Range („A” ja a)
Kood:
Sub IIF_Ex2 () hämardage nii kaua, kui pikka summutamist, kui a = 2 kuni 11 Number = leht1.Range ("A" ja a) End Sub
See koodirida võimaldab VBA-l läbida kõik lehe Veerg A veerus read ükshaaval For-silmuse all.
5. samm: kasutage IIF-i, et kontrollida, kas iga lahtri väärtus on paaritu või paaritu, ning salvestage tulemused veeru B iga lahtri alla. Järgnev koodirida täidab teie ülesande.
Leht1.Range (“B” ja a) .Väärtus = IIf (arv Mod 2 = 0, “paaris”, “paaritu”)
Kood:
Sub IIF_Ex2 () hämardage nii kaua, kui pikka summutamist, kui a = 2 kuni 11 Number = Leht1.Range ("A" ja a) Leht1.Range ("B" ja a) .Väärtus = IIf (arv Mod 2 = 0), "Paaris", "paaritu") lõpp alam
Selles reas soovime, et tulemused salvestatakse Lehe1 veeru B iga lahtri alla. Seetõttu kasutasime kooditüki vasakus servas “Sheet1.Range (“ B ”ja i) .Value”. Kasutasime IIF-i, et kontrollida, kas arv on jagatav kahega, kasutades Mod-i (Modulo operaator VBA all). Lõpuks soovime saada väljundit selle kohta, kas veerus B on paarisarv või paaritu. Seetõttu mainitakse neid kahte väärtust IIF-i avalduses.
6. samm: sulgege väljal For loop järgmise väljaga, nii et pärast iga iteratsiooni liigub süsteem lehe järgmise lahtri poole, kuni jõuab 11. reale.
Kood:
Sub IIF_Ex2 () hämardage nii kaua, kui pikka summutamist, kui a = 2 kuni 11 Number = Leht1.Range ("A" ja a) Leht1.Range ("B" ja a) .Väärtus = IIf (arv Mod 2 = 0), "Isegi", "Veider") Järgmine lõpp - alam
7. samm: see on see. Käivitage see kood, vajutades VBE ülaosas asuvale nupule F5 või Käivita. Pärast selle makro käitamist näete Exceli töövihiku 1. lehel (nimega “Näide_1”) allpool toodud väljundit.
Näide nr 3 - VBA IIF
Nüüd näeme pesastatud IIF-i avaldust:
Samamoodi pesame mitu IF-tingimust ühes ahelas.
Oletame, et samad andmed, mida kasutasime eelmisel juhul. Kõik, mida tahtsime, on kirjutada kood, mis võimaldab meil numbreid järgmiselt eristada:
- Kui arv on vahemikus 1 kuni 3 (kaasa arvatud 3), peaks see B veerus märkima “Väike”.
- Kui arv on vahemikus 4 kuni 6 (kaasa arvatud 6), peaks see B veerus märkima “Keskmine”.
- Kui arv on vahemikus 7–10 (kaasa arvatud 10), peaks see B veerus märkima „Suur“.
Kirjutame selle tüüpi IIF-i jaoks koodi:
1. samm: määratlege VBE-s uus alaprotseduur, mis mahutab teie makro.
Kood:
Sub NestedIf () Lõpp Sub
Järgige samme 2 kuni 4 samamoodi nagu ülaltoodud näites (selle artikli näide 2). See hõlmab muutujate määratlemist ja kõigi veerus A olevate numbrite lisamist For silmuse alla.
5. samm: soovitud väljundi saamiseks kasutage järgmist kooditükki.
Kood:
Sub NestedIf () Hämar number nii pikk, kui = 2 kuni 11 Number = Leht2.Range ("A" ja a) Leht2.Range ("B" ja a) .Väärtus = IIf (arv = 7, "Suur", " Keskmine ")) Lõpp-alam
6. samm: sulgege käsk Järgmine avaldus ja käivitage see kood, kasutades nuppu F5 või nuppu Käivita VBE all ülemisel lindil. Kui olete koodi käivitanud, näete väljundit järgmiselt:
Selles koodis kasutatakse pesastatud IIF-i. Esimese IIF all antakse meile, mida tuleks trükkida veeru B alla, kui numbrid on vahemikus 1 kuni 3. Teise IIF korral mainisime, mida tuleks trükkida B veergu, kui arv on suurem kui või sellega võrdne 7 ja all sama IIF, siis esitasime selle, mis tuleks trükkida veeru B alla, kui numbrid ei ole vahemikus 1 kuni 3 kuni 7 kuni 10.
Sel viisil saame sama koodi alla lisada mitu IIF-i ja need pesa panna. See on see sellest artiklist. Mässime asja kokku mõne meeldejääva asjaga.
Asjad, mida meeles pidada
- IIF hindab alati mõlemat osa (TRUE ja FALSE) konkreetse seisundi jaoks. Kuid see trükitakse VABA osa ainult siis, kui miski pole TÕELINE.
- Kirjutamine on lühem kui tavalistes If-Else avaldustes.
- See pole hästi teada, seetõttu ei pruugi mõni kasutaja teie koodist aru saada, kui olete tavapärase If-Else asemel kasutanud IIF-i.
Soovitatavad artiklid
See on VBA IIF juhend. Siin arutatakse, kuidas kasutada rakendust Excel VBA IIF koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -
- Töö VBA Active Celliga
- Rea kustutamine VBA-s
- Kuidas kasutada Exceli VBA ülekandmist?
- Kuidas VBA abil viga 1004 parandada