Instrucțiuni VBA multiple (imbricate) If

Acest tutorial vă va arăta cum să utilizați instrucțiunile imbricate If în VBA

Dacă instrucțiunile vă permit să testați o singură condiție în VBA pentru a vedea dacă condiția este adevărată sau falsă și, în funcție de răspuns, codul se va deplasa în direcția afirmației adevărate sau a afirmației false.

O declarație IF unică

1234567891011 Sub TestIfDim x ca întregx = 10Dacă x = 10 atunci„dacă x este 10, condiția este adevăratăMsgBox x are 10 "Altfel„dacă x nu este 10, condiția este falsăMesaj "x nu este 10"End IfSfârșitul Sub

IF-uri imbricate explicate

Un If imbricat vă permite să puneți mai multe condiții INSIDE fiecare dintre declarațiile True și / sau False ale If-ului original.

1234567891011121314151617181920212223242526 Sub TestNestedIf ()Dim x ca întregDim ca întregDim z ca întregx = 10y = 9z = 8Dacă x = 10 atunci'dacă x este 10, condiția este adevărată, deci testați pentru yDacă y = 8 atunciMsgBox „y are 9”Altfel„dacă y nu este 10, condiția este falsăMesaj "Nu este 9"End IfAltfel„dacă x nu este 10, atunci condiția este falsă, așa că„ testăm pentru zDacă z = 8, atunciMsgBox "z are 8"Altfel„dacă z nu este 8, condiția este falsăMesaj "Z nu este 10"End If'un alt End If este necesar pentru a închide originalul ifEnd IfSfârșitul Sub

Indentarea codului dvs. atunci când îl scrieți este întotdeauna o bună practică, deoarece face codul ușor de citit și urmat atunci când trebuie să reveniți la el într-o anumită etapă sau când un alt programator trebuie să îl citească.

De asemenea, am putea crea o funcție concepută de utilizator (UDF) și să apelăm valorile unor celule din Excel în funcție folosind parametri.

1234567891011121314151617181920 Funcția GetIf (x ca întreg, y ca întreg, z ca întreg) ca ȘirDacă x = 10 atunci'dacă x este 10, condiția este adevărată, deci testați pentru yDacă y = 8 atunciGetIf = "y are 9"Altfel„dacă y nu este 10, condiția este falsăGetIf = "y nu este 9"End IfAltfel„dacă x nu este 10, atunci condiția este falsă, așa că„ testăm pentru zDacă z = 8 atunciGetIf = "z este 8"Altfel„dacă z nu este 8, condiția este falsăGetIf = "z nu este 10"End If'un alt End If este necesar pentru a închide originalul ifEnd IfFuncția de sfârșit

Cuibărit Dacă Exemplu practic

Luați în considerare următoarea funcție:

12345678910111213141516171819202122 Funcția GetDiscount (dblPrice As Double) Ca DoubleDacă dblPrice> = 1000 Atunci„dacă prețul este mai mare de 1000, acordați o reducereDacă dblPrice> = 2000 Atunci„dacă este mai mare de 2000, acordați 10% reducereGetDiscount = dblPrice * 0.1Altfel'altfel acordați 5% reducereGetDiscount = dblPrice * 0,05End If„dacă prețul nu este mai mare de 1000Altfel„dacă este mai mare de 500, acordați 2,5% reducereDacă dblPrice> = 500 AtunciGetDiscount = dblPrice * 0,025Altfel'altfel nici o reducereGetDiscount = 0End If'un alt End If este necesar pentru a închide originalul ifEnd IfFuncția de sfârșit

Folosind această funcție într-o foaie Excel, putem testa pentru a vedea prețul total pentru o comandă și putem aplica reduceri diferite în funcție de totalul respectiv.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Folosind ElseIf

ElseIf ne permite să vă simplificăm codul, deoarece s-a mutat în jos la instrucțiunea if doar dacă prima returnează un fals.

12345678910111213141516 Funcția GetDiscount (dblPrice As Double) Ca Double'folosiți else if pentru a reduce codul de scriereDacă dblPrice> = 2000 AtunciGetDiscount = dblPrice * 0.1ElseIf dblPrice> = 1000 ApoiGetDiscount = dblPrice * 0,075ElseIf dblPrice> = 500 ApoiGetDiscount = dblPrice * 0,05ElseIf dblPrice> = 200 ApoiGetDiscount = dblPrice * 0,025ElseIf dblPrice> = 100 ApoiGetDiscount = dblPrice * 0,01AltfelGetDiscount = 0End IfFuncția de sfârșit

Utilizarea unei declarații de caz

De asemenea, putem folosi o declarație de caz pentru a obține același efect.

1234567891011121314151617 Funcția GetDiscount (dblPrice As Double) Ca DoubleSelectați Case dblPrice„această declarație de caz are 6 niveluri diferite de reducereCazul este> = 2000GetDiscount = dblPrice * 0.1Cazul este> = 1000GetDiscount = dblPrice * 0,075Cazul este> = 500GetDiscount = dblPrice * 0,05Cazul este> = 200GetDiscount = dblPrice * 0,025Cazul este> = 100GetDiscount = dblPrice * 0,01Alt cazGetDiscount = 0Selectare sfârșitFuncția de sfârșit

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave