I VBA kan du afslutte en sub eller funktion ved at bruge Afslut Sub eller Afslut funktion kommandoer.
1 | Afslut Sub |
1 | Afslut funktion |
Når udførelsen af koden kommer til Afslut Sub eller Afslut funktion, vil den afslutte en Sub eller Funktion og fortsætte med enhver anden kodeudførelse.
Hvis du vil lære at afslutte en Sub on Error, skal du klikke på dette link: VBA On Error Exit Sub
Hvis du vil lære at afslutte en hel kodeudførelse, skal du klikke på dette link: VBA End
Afslut en Sub i VBA
Du vil se på eksemplet, hvad der sker, når vi bruger Afslut Sub kommando i en sub. Vi har oprettet en Sub ExitSub, som har Afslut Sub kommando indeni. SubCallExitSub kalder dette Sub. Her er koden:
123456789101112131415161718 | Private Sub ExitSub ()Dim i As IntegerFor i = 1 til 10Hvis i = 5 SåAfslut SubMsgBox "Værdien af i er" & iAfslut HvisNæste iAfslut SubPrivat underopkaldExitSub ()Ring til ExitSubMsgBox "Exit Sub"Afslut Sub |
I ExitSub, indtaster vi først For Loop, hvis værdien af i er mindre end 10:
123 | For i = 1 til 10Næste i |
Derefter kontrollerer vi, om værdien af i er lig med 5, ved hjælp af kommandoen If. Hvis værdien er 5, vil vi afslutte Sub og returnere meddelelsesboksen med værdien i:
1234 | Hvis i = 5 SåAfslut SubMsgBox "Værdien af i er" & iAfslut Hvis |
Hvis betingelsen ikke er opfyldt, øges følgende sætning i med 1 og indtastes i For -loop igen:
1 | Næste i |
I CallExitSub, kalder vi først Sub ExitSub:
1 | Ring til ExitSub |
Herefter returnerer vi meddelelsesboksen:
1 | MsgBox "Exit Sub" |
Hvis du kører CallExitSub, vil den først kalde ExitSub. Hvis du udfører denne kode i fejlfindingstilstanden, vil du se, at den vil gå gennem løkken 5 gange. I den 5th iteration, værdien af variablen i bliver 5, og koden indtastes i If -brødteksten. Nu er Sub ExitSub forlades og returneres til CallExitSub. Den næste linje er MsgBox “Exit Sub”:
Som du kan se, er ExitSub forlades lige efter Afslut Sub kommando, så MsgBox “Værdien af i er” & i vil aldrig blive henrettet.
Afslut en funktion i VBA
Afslutning af en funktion i VBA ligner at forlade en Sub, bare kommandoen er Afslut funktion. I eksemplet oprettede vi ExitFunc som returnerer et helt tal. Sub CallExitFunction kalder denne funktion. Her er koden:
1234567891011121314151617181920 | Privat funktion ExitFunc () som heltalDim i As IntegerFor i = 1 til 10Hvis i = 5 SåExitFunc = iAfslut funktionAfslut HvisNæste iAfslut funktionPrivate Sub CallExitFunction ()Dim intFunc som heltalintFunc = ExitFunction ()MsgBox "Værdien af intFunc er" & intFuncAfslut Sub |
I ExitFunc, indtaster vi først For Loop, hvis værdien af i er mindre end 10:
123 | For i = 1 til 10Næste i |
Derefter kontrollerer vi, om værdien af i er lig med 5, ved hjælp af kommandoen If. Hvis værdien er 5, tildeler vi værdien af i til funktionsresultatet og forlader funktionen:
1234 | Hvis i = 5 SåExitFunc = iAfslut funktionAfslut Hvis |
Hvis betingelsen ikke er opfyldt, øges følgende sætning i med 1 og indtastes i For -loop igen:
1 | Næste i |
I CallExitFunction, kalder vi først funktionen ExitFunc: For at gøre det skal vi deklarere variablen intFunc skriv heltal og tildel resultatet af ExitFunc funktion til det:
123 | Dim intFunc som heltalintFunc = ExitFunction () |
Derefter returnerer vi meddelelsesboksen med værdien intFunc:
1 | MsgBox "Værdien af intFunc er" & intFunc |
Hvis du kører CallExitFunction, vil den først kalde funktionen ExitFunc. Hvis du udfører denne kode i fejlfindingstilstanden, vil du se, at den vil gå gennem løkken 5 gange. I den 5th iteration, værdien af variablen i bliver 5, og koden indtastes i If -brødteksten. Nu er værdien af ExitFunc bliver til i, og funktionen forlades og returneres til CallExitFunction. Den næste linje er MsgBox “Værdien af intFunc er” & intFunc: