VBA više (ugniježđenih) if izjava

Ovaj će vam vodič pokazati kako koristiti ugniježđene naredbe If u VBA

Ako vam izrazi dopuštaju testiranje jednog uvjeta u VBA -i kako biste vidjeli je li uvjet Tačan ili Netačan, a ovisno o odgovoru, kôd će se pomaknuti u smjeru istinitog ili lažnog iskaza.

Jedinstveni IF iskaz

1234567891011 Podispit AkoDim x kao cijeli brojx = 10Ako je x = 10 tada'ako je x 10, uvjet je istinitMsgBox x je 10 "Drugo'ako x nije 10, uvjet je netočanPoruka za poruke "x nije 10"Završi akoKraj podm

Objašnjeni ugniježđeni IF -ovi

Ugniježđeni If omogućuje vam postavljanje više uvjeta Unutar svakog od istinitih i/ili lažnih izraza izvornog If.

1234567891011121314151617181920212223242526 Pod TestNstedIf ()Dim x kao cijeli brojZatamnite kao cijeli brojDim z kao cijeli brojx = 10y = 9z = 8Ako je x = 10 tada'ako je x 10, uvjet je istinit pa provjerite za yAko je y = 8 tadaMsgBox "y je 9"Drugo'ako y nije 10, uvjet je netočanPoruka "y nije 9"Završi akoDrugo'ako x nije 10 tada je uvjet neistinit, pa idemo' testirati zAko je z = 8, tadaMsgBox "z je 8"Drugo'ako z nije 8, uvjet je netočanSMS poruka "z nije 10"Završi ako'drugi kraj Ako je potrebno za zatvaranje izvornika akoZavrši akoKraj podm

Uvlačenje koda kada ga pišete uvijek je dobra praksa jer ga čini lakim za čitanje i praćenje kada se morate vratiti na njega u nekoj fazi ili kad ga drugi programer mora pročitati.

Također bismo mogli stvoriti korisnički dizajniranu funkciju (UDF) i pozvati vrijednosti nekih ćelija iz Excela u funkciju pomoću parametara.

1234567891011121314151617181920 Funkcija GetIf (x kao cijeli broj, y kao cijeli broj, z kao cijeli broj) kao nizAko je x = 10 tada'ako je x 10, uvjet je istinit pa provjerite za yAko je y = 8 tadaGetIf = "y je 9"Drugo'ako y nije 10, uvjet je lažanGetIf = "y nije 9"Završi akoDrugo'ako x nije 10 tada je uvjet lažan, pa idemo' testirati zAko je z = 8 tadaGetIf = "z je 8"Drugo'ako z nije 8, uvjet je netočanGetIf = "z nije 10"Završi ako'drugi kraj Ako je potrebno za zatvaranje izvornika akoZavrši akoZavršna funkcija

Primjer ugniježđen ako je praktičan

Razmotrite sljedeću funkciju:

12345678910111213141516171819202122 Funkcija GetDiscount (dblPrice As Double) Kao DoubleAko je dblCijena> = 1000 Tada'ako je cijena veća od 1000, dodijelite popustAko je dblCijena> = 2000 Tada'ako je veći od 2000, dajte 10% popustaGetDiscount = dblPrice * 0.1Drugo'U suprotnom dajte 5% popustaGetDiscount = dblCijena * 0,05Završi ako'ako cijena nije veća od 1000Drugo'ako je veći od 500, dajte 2,5% popustaAko je dblCijena> = 500 TadaGetDiscount = dblPrice * 0,025Drugo'inače nema popustaGetDiscount = 0Završi ako'drugi kraj Ako je potrebno za zatvaranje izvornika akoZavrši akoZavršna funkcija

Pomoću ove funkcije u Excelovom listu možemo testirati da vidimo ukupnu cijenu narudžbe i primijeniti različite popuste ovisno o tom zbroju.

VBA programiranje | Generator koda radi za vas!

Korištenje ElseIf -a

ElseIf nam omogućuje da pojednostavimo vaš kôd jer se pomaknuo samo na drugu if naredbu ako prva vraća false.

12345678910111213141516 Funkcija GetDiscount (dblPrice As Double) Kao Double'upotrijebite else ako smanjite pisanje kodaAko je dblCijena> = 2000 TadaGetDiscount = dblPrice * 0.1Inače, ako je dblPrice> = 1000 TadaGetDiscount = dblPrice * 0,075Inače, ako je dblPrice> = 500 TadaGetDiscount = dblCijena * 0,05Inače, ako je dblPrice> = 200 TadaGetDiscount = dblPrice * 0,025Inače, ako je dblPrice> = 100 TadaGetDiscount = dblPrice * 0,01DrugoGetDiscount = 0Završi akoZavršna funkcija

Korištenje izjave slučaja

Također možemo koristiti izjavu slučaja za postizanje istog učinka.

1234567891011121314151617 Funkcija GetDiscount (dblPrice As Double) Kao DoubleOdaberite Case dblPrice'Ova izjava slučaja ima 6 različitih razina popustaSlučaj je> = 2000GetDiscount = dblPrice * 0.1Slučaj je> = 1000GetDiscount = dblPrice * 0,075Slučaj je> = 500GetDiscount = dblCijena * 0,05Slučaj je> = 200GetDiscount = dblPrice * 0,025Slučaj je> = 100GetDiscount = dblPrice * 0,01Slučaj InačeGetDiscount = 0Kraj OdaberiteZavršna funkcija

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave