Več stavkov VBA (ugnezdenih) If

Ta vadnica vam bo pokazala, kako uporabljati ugnezdene stavke If v VBA

Če vam stavki omogočajo, da preizkusite en sam pogoj v VBA, da preverite, ali je pogoj True ali False, in odvisno od odgovora, se bo koda premaknila v smeri resnične izjave ali napačne izjave.

Enostaven stavek IF

1234567891011 Podtestiranje ČeZatemni x kot celo številox = 10Če je x = 10, potem'če je x 10, je pogoj resMsgBox x je 10 "Sicer pa'če x ni 10, je pogoj napačenSporočilo "x ni 10"Konec ČeEnd Sub

Pojasnjeni ugnezdeni IF -ji

Vgnezdeni If vam omogoča, da v notranjost vsakega od stavkov True in/ali False izvirnega If postavite več pogojev.

1234567891011121314151617181920212223242526 Sub TestNstedIf ()Zatemni x kot celo številoZatemni kot celo številoDim z kot celo številox = 10y = 9z = 8Če je x = 10, potem'če je x 10, je pogoj res, zato preizkusite za yČe je y = 8, potemMsgBox "y je 9"Sicer pa'če y ni 10, je pogoj napačenSporočilo "y ni 9"Konec ČeSicer pa'če x ni 10, potem je pogoj napačen, zato' preizkusimo za zČe je z = 8, potemMsgBox "z je 8"Sicer pa'če z ni 8, je pogoj napačenSporočilo "z ni 10"Konec Če'another End If je potreben za zapiranje izvirnika ifKonec ČeEnd Sub

Odmik kode, ko jo pišete, je vedno dobra praksa, saj olajša branje in sledenje kodi, ko se morate nanjo v določeni fazi vrniti, ali ko jo mora prebrati drug programer.

Prav tako bi lahko ustvarili funkcijo, ki jo je oblikoval uporabnik (UDF), in z uporabo parametrov v funkcijo poklicali vrednosti nekaterih celic iz Excela.

1234567891011121314151617181920 Funkcija GetIf (x kot celo število, y kot celo število, z kot celo število) kot nizČe je x = 10, potem"če je x 10, je pogoj res, zato preizkusite za yČe je y = 8, potemGetIf = "y je 9"Sicer pa'če y ni 10, je pogoj napačenGetIf = "y ni 9"Konec ČeSicer pa'če x ni 10, potem je pogoj napačen, zato' preizkusimo za zČe je z = 8, potemGetIf = "z je 8"Sicer pa'če z ni 8, je pogoj napačenGetIf = "z ni 10"Konec Če'another End If je potreben za zapiranje izvirnika ifKonec ČeKončana funkcija

Primer vgnezdit, če je praktičen

Razmislite o naslednji funkciji:

12345678910111213141516171819202122 Funkcija GetDiscount (dblPrice As Double) Kot DoubleČe je dblPrice> = 1000, potem„če je cena večja od 1000, dodelite popustČe je dblPrice> = 2000, potem„če je večji od 2000, dajte 10% popustGetDiscount = dblPrice * 0,1Sicer pa"V nasprotnem primeru dajte 5% popustaGetDiscount = dblPrice * 0,05Konec Če"če cena ni večja od 1000Sicer pa"če je večji od 500, dajte 2,5% popustaČe je dblPrice> = 500 PotemGetDiscount = dblPrice * 0,025Sicer pa'drugače ni popustaGetDiscount = 0Konec Če'another End If je potreben za zapiranje izvirnika ifKonec ČeKončana funkcija

S to funkcijo na Excelovem listu lahko preizkusimo, da vidimo skupno ceno naročila, in glede na to skupno vrednost uporabimo različne popuste.

Programiranje VBA | Generator kod deluje za vas!

Uporaba ElseIf

ElseIf nam omogoča, da poenostavimo vašo kodo, saj se je premaknila le na drugo izjavo if, če prva vrne false.

12345678910111213141516 Funkcija GetDiscount (dblPrice As Double) Kot Double'če želite zmanjšati pisanje kode, uporabite elseČe je dblPrice> = 2000, potemGetDiscount = dblPrice * 0,1Če je dblPrice> = 1000, potemGetDiscount = dblPrice * 0,075Če je dblPrice> = 500 PotemGetDiscount = dblPrice * 0,05Drugače če je dblPrice> = 200 PotemGetDiscount = dblPrice * 0,025Če je dblPrice> = 100 PotemGetDiscount = dblPrice * 0,01Sicer paGetDiscount = 0Konec ČeKončana funkcija

Uporaba izjave o primeru

Za dosego enakega učinka lahko uporabimo tudi izjavo o primeru.

1234567891011121314151617 Funkcija GetDiscount (dblPrice As Double) Kot DoubleIzberite Primer dblPrice„ta izpis primera ima 6 različnih stopenj popustaPrimer je> = 2000GetDiscount = dblPrice * 0,1Primer je> = 1000GetDiscount = dblPrice * 0,075Primer je> = 500GetDiscount = dblPrice * 0,05Primer je> = 200GetDiscount = dblPrice * 0,025Primer je> = 100GetDiscount = dblPrice * 0,01Primer drugačeGetDiscount = 0Konec IzberiteKončana funkcija

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave