See õpetus näitab teile, kuidas VBA -s kasutada pesastatud If -avaldusi
Kui avaldused võimaldavad teil VBA -s testida ühte tingimust, et näha, kas tingimus on tõene või vale, ja sõltuvalt vastusest liigub kood tõese väite või valelause suunas.
Üks IF avaldus
1234567891011 | AlamkatseKuiDim x täisarvunax = 10Kui x = 10, siis"kui x on 10, on tingimus tõeneMsgBox x on 10 "Muidu'kui x ei ole 10, on tingimus valeMsgbox "x ei ole 10"Lõpp KuiEnd Sub |
Pesastatud IF -d selgitatud
Pesastatud If võimaldab teil seada algse Ifi iga tõese ja/või vale väite sisse mitu tingimust.
1234567891011121314151617181920212223242526 | AlamkatseNestedIf ()Dim x täisarvunaDim y kui täisarvDim z täisarvunax = 10y = 9z = 8Kui x = 10, siis"kui x on 10, on tingimus tõene, nii et testige y jaoksKui y = 8, siisMsgBox "y on 9"Muidu"Kui y ei ole 10, on tingimus valeSõnumikast "y pole 9"Lõpp KuiMuidu'kui x ei ole 10, siis on tingimus vale, nii et proovime z -iKui z = 8 siisMsgBox "z on 8"Muidu'kui z ei ole 8, on tingimus valeSõnumikast "z ei ole 10"Lõpp Kui'teine lõpp Kui originaali sulgemiseks on vaja ifLõpp KuiEnd Sub |
Koodi taandamine selle kirjutamisel on alati hea tava, kuna see muudab koodi hõlpsasti loetavaks ja jälgitavaks, kui peate selle mingil etapil tagasi tulema või kui mõni teine programmeerija peab selle lugema.
Samuti võiksime luua kasutaja kavandatud funktsiooni (UDF) ja helistada parameetrite abil funktsioonist mõne Exceli lahtri väärtused.
1234567891011121314151617181920 | Funktsioon GetIf (x täisarvuna, y täisarvuna, z täisarvuna) stringinaKui x = 10, siis"kui x on 10, on tingimus tõene, nii et testige y jaoksKui y = 8, siisGetIf = "y on 9"Muidu"Kui y ei ole 10, on tingimus valeGetIf = "y ei ole 9"Lõpp KuiMuidu'kui x ei ole 10, siis on tingimus vale, nii et proovime z -iKui z = 8, siisGetIf = "z on 8"Muidu'kui z ei ole 8, on tingimus valeGetIf = "z ei ole 10"Lõpp Kui'teine lõpp Kui originaali sulgemiseks on vaja ifLõpp KuiLõppfunktsioon |
Pesastatud praktiline näide
Kaaluge järgmist funktsiooni:
12345678910111213141516171819202122 | Funktsioon GetDiscount (dblPrice As Double) Nagu DoubleKui dblHind> = 1000 Siis"kui hind on suurem kui 1000, määrake allahindlusKui dblHind> = 2000 Siis"kui see on suurem kui 2000, tehke 10% allahindlustAllahindlus = dblHind * 0,1Muidu"muidu anna 5% allahindlustAllahindlus = dblHind * 0,05Lõpp KuiKui hind ei ületa 1000MuiduKui see on suurem kui 500, tehke allahindlust 2,5%Kui dblHind> = 500 SiisAllahindlus = dblHind * 0,025Muidu"muidu allahindlust poleAllahindlus = 0Lõpp Kui'teine lõpp Kui originaali sulgemiseks on vaja ifLõpp KuiLõppfunktsioon |
Kasutades seda funktsiooni Exceli lehel, saame testida tellimuse koguhinda ja rakendada sõltuvalt sellest kogusummast erinevaid allahindlusi.
VBA programmeerimine | Koodigeneraator töötab teie jaoks!
ElseIfi kasutamine
ElseIf võimaldab meil teie koodi lihtsustada, kuna see liikus allapoole, kui esimene avaldus tagastab vale.
12345678910111213141516 | Funktsioon GetDiscount (dblPrice As Double) Nagu Double"kasutage muidu, kui soovite koodi kirjutamist vähendadaKui dblHind> = 2000 SiisAllahindlus = dblHind * 0,1MuiduKui dblHind> = 1000 SiisAllahindlus = dblHind * 0,075MuiduKui dblHind> = 500 SiisAllahindlus = dblHind * 0,05MuiduKui dblHind> = 200 SiisAllahindlus = dblHind * 0,025MuiduKui dblHind> = 100 SiisAllahindlus = dblHind * 0,01MuiduAllahindlus = 0Lõpp KuiLõppfunktsioon |
Juhtumi avalduse kasutamine
Sama efekti saavutamiseks võime kasutada ka juhtumite avaldust.
1234567891011121314151617 | Funktsioon GetDiscount (dblPrice As Double) Nagu DoubleValige Case dblPriceSellel juhtumil on kuus erinevat allahindlustJuhtum on> = 2000Allahindlus = dblHind * 0,1Juhtum on> = 1000Allahindlus = dblHind * 0,075Juhtum on> = 500Allahindlus = dblHind * 0,05Juhtum on> = 200Allahindlus = dblHind * 0,025Juhtum on> = 100Allahindlus = dblHind * 0,01Juhtum muiduAllahindlus = 0Lõpp ValiLõppfunktsioon |