VBA Exit Sub - Afslut VBA-underprocedure, hvis betingelserne ikke er opfyldt

Indholdsfortegnelse

Excel VBA Afslut underprocedure

Exit Sub- sætning forlader underproceduren tidligere end de definerede linjer i VBA-koder. For at afslutte underproceduren skal vi dog anvende en slags logisk test.

Lad os konstruere dette i enkle vendinger.

Undermakronavn () '…' En eller anden kode her '… Afslut Under' Afslut underen uden at udføre yderligere kodelinjer under '…' Denne kode ignoreres '… Afslut under

Eksempler

Eksempel nr. 1

For et bedre eksempel, se nedenstående kode.

Kode:

Underudgang_eksempel1 () Dim k så længe for k = 1 til 10 celler (k, 1). Værdi = k næste k slut sub

Ovenstående kode indsætter serienumre fra 1 til 10 i cellerne A1 til A10.

Nu vil jeg kun indsætte 5 serienumre, og så snart værdien af ​​variablen “k” bliver 6, vil jeg afslutte suben.

Jeg bliver nødt til at tilføje den logiske test i Excel som IF k = 6 Derefter Exit Sub .

Kode:

Sub Exit_Example1 () Dim k så længe For k = 1 til 10 Hvis k = 6 Afslut derefter Sub 'Så snart k-værdien bliver 6, ignorerer den alle koder og afslutter celler (k, 1). Værdi = k Næste k End Sub

Kør nu koden linje for linje. Tryk på F8-tasten for at starte proceduren.

Fra nu af er k-værdien nul.

For at ændre k-værdien til 1 skal du trykke på F8-tasten en gang til.

Så k-værdien er 1, vores kode fortsætter og kører 1 i cellen A1. På denne måde skal du fortsætte med at køre løkken, indtil værdien af ​​k bliver 6.

Nu er værdien af ​​k 6, og kodelinjen er ved at udføre vores logiske test for at afslutte underproceduren. Hvis jeg trykker på F8-tasten en gang til, går det kun hele underproceduren.

Som vi kan se, har det fremhævet ordet "Exit Sub." Når du trykker på F8-tasten, forlader den underproceduren uden at gå til ordet "Afslut sub."

Eksempel 2 - Ved fejl Afslut underproceduren

Vi kan også afslutte underproceduren, når vi får fejlværdierne. Overvej f.eks. Nedenstående data for at dividere nummeret 1 fra nummer 2.

Nedenfor er koden for at få delingen af ​​to tal.

Kode:

Underudgang_eksempel2 () Dim k så længe for k = 2 til 9 celler (k, 3). Værdi = celler (k, 1). Værdi / celler (k, 2). Værdi næste k slut sub

Som vi ved, kan vi ikke dele noget tal med nul. Så hvis vi forsøger at gøre det, får vi fejlen som Run Time Error '11': Division By Zero.

For at undgå dette, så snart vi støder på en fejl, vil jeg nævne min makro for at afslutte underproceduren med øjeblikkelig virkning. Nedenstående kode er et sådant tilfælde.

Kode:

Sub Exit_Example2 () Dim k så længe for k = 2 til 9 On Error Gå til ErrorHandler-celler (k, 3) .Værdi = Celler (k, 1) .Værdi / celler (k, 2) .Værdi Næste k ErrorHandler: Afslut Sub Afslut sub

I ovenstående eksempel har jeg nævnt udsagnet "On Error Goto ErrorHandler." Her er ordet ErrorHandler den etiket, jeg har tildelt. Hvis du kan se nederst i koden, har jeg nævnt mærket som

ErrorHandler: Afslut sub

Så snart koden støder på en fejl, skubber den koden for at springe til etiketten, og mærket har "Exit Sub" -erklæringen, så det forlader underproceduren.

Nu kører jeg koden; det beregner delingen, indtil den finder en fejl.

Som du kan se i cellen C7, har den stødt på en fejl som "Division by Zero", så den er ude af underproceduren. Uden at informere brugeren om at afslutte underproceduren er altid en farlig ting. For at underrette brugeren om fejlen kan vi inkludere en lille meddelelsesboks.

Kode:

Sub Exit_Example2 () Dim k så længe for k = 2 til 9 på fejl Gå til ErrorHandler-celler (k, 3) .Værdi = Celler (k, 1) .Værdi / celler (k, 2) .Værdi Næste k ErrorHandler: MsgBox " Der er opstået en fejl, og fejlen er: "& vbNewLine & Err.Description Exit Sub End Sub

Ovenstående kode viser fejlmeddelelsen og afslut derefter underproceduren. Hvis der opstår en fejl under kørsel af kode, vises meddelelsesfeltet i VBA som nedenfor.

Dette er mere en pålidelig måde at afslutte underproceduren på.

Interessante artikler...