VBA keli (įdėti) teiginiai

Ši pamoka parodys, kaip naudoti įdėtus If teiginius VBA

Jei teiginiai leidžia išbandyti vieną sąlygą VBA ir patikrinti, ar sąlyga yra teisinga, ar klaidinga, ir, priklausomai nuo atsakymo, kodas judės tikrojo teiginio ar klaidingo teiginio kryptimi.

Vienas IF pareiškimas

1234567891011 Antrasis testas JeiDim x kaip sveikasis skaičiusx = 10Jei x = 10, tada„Jei x yra 10, sąlyga yra teisinga„MsgBox x“ yra 10 coliųKitas„Jei x nėra 10, sąlyga yra klaidinga„Msgbox“ x nėra 10 “Pabaiga JeiPabaiga Sub

Įdėtos IF paaiškinta

Įdėtas „If“ leidžia įterpti kelias sąlygas VISO kiekvieno teisingo ir (arba) klaidingo pradinio „If“ teiginio viduje.

1234567891011121314151617181920212223242526 Antrasis testasNestedIf ()Dim x kaip sveikasis skaičiusDim y kaip sveikasis skaičiusDim z kaip sveikasis skaičiusx = 10y = 9z = 8Jei x = 10, tada„Jei x yra 10, sąlyga yra teisinga, todėl išbandykite yJei y = 8, tada„MsgBox“ y yra 9 “Kitas„Jei y nėra 10, sąlyga yra klaidinga„Msgbox“ y nėra 9 “Pabaiga JeiKitas„Jei x nėra 10, tada sąlyga yra klaidinga, todėl išbandykime zJei z = 8, tada„MsgBox“ z yra 8 coliųKitas'jei z nėra 8, sąlyga yra klaidinga„Msgbox“ z nėra 10 “Pabaiga Jei“Kitas pabaiga Jei reikia uždaryti originalą, jeiPabaiga JeiPabaiga Sub

Įtraukimas į kodą, kai jį rašote, visada yra gera praktika, nes kodą lengva perskaityti ir sekti, kai tam tikru etapu turite grįžti prie jo arba kai kitas programuotojas turi jį perskaityti.

Taip pat galėtume sukurti vartotojo sukurtą funkciją (UDF) ir naudojant parametrus iškviesti kai kurių „Excel“ ląstelių reikšmes į funkciją.

1234567891011121314151617181920 Funkcija GetIf (x kaip sveikasis skaičius, y kaip sveikasis skaičius, z kaip sveikasis skaičius) kaip eilutėJei x = 10, tada„Jei x yra 10, sąlyga yra teisinga, todėl išbandykite yJei y = 8, tadaGetIf = "y yra 9"Kitas„Jei y nėra 10, sąlyga yra klaidingaGetIf = "y nėra 9"Pabaiga JeiKitas„Jei x nėra 10, tada sąlyga yra klaidinga, todėl išbandykime zJei z = 8, tadaGetIf = "z yra 8"Kitas'jei z nėra 8, sąlyga yra klaidingaGetIf = "z nėra 10"Pabaiga Jei“Kitas pabaiga Jei reikia uždaryti originalą, jeiPabaiga JeiPabaigos funkcija

Įdėtas praktinis pavyzdys

Apsvarstykite šią funkciją:

12345678910111213141516171819202122 Funkcija „GetDiscount“ („dblPrice As Double“) „Dviguba“Jei dblKaina> = 1000 Tada'jei kaina didesnė nei 1000, suteikite nuolaidąJei dblKaina> = 2000 Tada„Jei daugiau nei 2000, suteikite 10% nuolaidą„GetDiscount“ = „dbl“ kaina * 0,1KitasPriešingu atveju suteikite 5% nuolaidą„GetDiscount“ = „dbl“ kaina * 0,05Pabaiga Jei“, jei kaina ne didesnė kaip 1000Kitas„Jei daugiau nei 500, suteikite 2,5% nuolaidąJei dblKaina> = 500 Tada„GetDiscount“ = „dbl“ kaina * 0,025Kitas'kitaip jokia nuolaida„GetDiscount“ = 0Pabaiga Jei“Kitas pabaiga Jei reikia uždaryti originalą, jeiPabaiga JeiPabaigos funkcija

Naudodami šią funkciją „Excel“ lape, mes galime išbandyti bendrą užsakymo kainą ir taikyti skirtingas nuolaidas, priklausomai nuo tos sumos.

VBA programavimas | Kodo generatorius jums tinka!

Naudojant „ElseIf“

„ElseIf“ leidžia mums supaprastinti jūsų kodą, nes jis perkeliamas į antrąjį if, jei pirmasis teiginys pateikia klaidingą.

12345678910111213141516 Funkcija „GetDiscount“ („dblPrice As Double“) „Dviguba“„Naudokite kitaip, jei norite sumažinti kodo rašymąJei dblKaina> = 2000 Tada„GetDiscount“ = „dbl“ kaina * 0,1Kitaip jei dblKaina> = 1000 Tada„GetDiscount“ = „dbl“ kaina * 0,075Kitaip jei dblKaina> = 500 Tada„GetDiscount“ = „dbl“ kaina * 0,05Kitaip jei dblKaina> = 200 Tada„GetDiscount“ = „dbl“ kaina * 0,025Kitaip jei dblKaina> = 100 Tada„GetDiscount“ = „dbl“ kaina * 0,01Kitas„GetDiscount“ = 0Pabaiga JeiPabaigos funkcija

Naudojant atvejo pareiškimą

Mes taip pat galime naudoti atvejo pareiškimą, kad pasiektume tą patį efektą.

1234567891011121314151617 Funkcija „GetDiscount“ („dblPrice As Double“) „Dviguba“Pasirinkite „Case dblPrice“„šioje bylos ataskaitoje yra 6 skirtingi nuolaidų lygiaiByla yra> = 2000„GetDiscount“ = „dbl“ kaina * 0,1Byla yra> = 1000„GetDiscount“ = „dbl“ kaina * 0,075Byla yra> = 500„GetDiscount“ = „dbl“ kaina * 0,05Byla yra> = 200„GetDiscount“ = „dbl“ kaina * 0,025Byla yra> = 100„GetDiscount“ = „dbl“ kaina * 0,01Kita byla„GetDiscount“ = 0Pabaiga PasirinkitePabaigos funkcija

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave