VBA mitu (pesastatud) lauset

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

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave