I VBA kan du avslutte en sub eller funksjon ved å bruke Avslutt Sub eller Avslutt funksjon kommandoer.
1 | Avslutt Sub |
1 | Avslutt funksjon |
Når kjøringen av koden kommer til Avslutt Sub eller Avslutt funksjon, vil den gå ut av en sub eller funksjon og fortsette med annen kodekjøring.
Hvis du vil lære å avslutte en Sub on Error, klikker du på denne lenken: VBA On Error Exit Sub
Hvis du vil lære å avslutte en hel kodekjøring, klikker du på denne lenken: VBA End
Avslutt en Sub i VBA
Du vil se på eksemplet hva som skjer når vi bruker Avslutt Sub kommando i en sub. Vi opprettet en Sub ExitSub, som har Avslutt Sub kommando inne. SubCallExitSub kaller dette Sub. Her er koden:
123456789101112131415161718 | Private Sub ExitSub ()Dim i As IntegerFor i = 1 til 10Hvis i = 5 DaAvslutt SubMsgBox "Verdien av i er" og iSlutt omNeste jegSlutt SubPrivate Sub CallExitSub ()Ring ExitSubMsgBox "Exit Sub"Slutt Sub |
I ExitSub, angir vi først For Loop hvis verdien av i er mindre enn 10:
123 | For i = 1 til 10Neste jeg |
Etter det sjekker vi om verdien av i er lik 5, ved hjelp av If -kommandoen. Hvis verdien er 5, vil vi gå ut av Sub og returnere meldingsboksen med verdien i:
1234 | Hvis i = 5 DaAvslutt SubMsgBox "Verdien av i er" og iSlutt om |
Hvis betingelsen ikke er oppfylt, øker følgende setning i med 1 og går inn i For -sløyfen igjen:
1 | Neste jeg |
I CallExitSub, kaller vi først Sub ExitSub:
1 | Ring ExitSub |
Etter det returnerer vi meldingsboksen:
1 | MsgBox "Exit Sub" |
Hvis du kjører CallExitSub, vil den først ringe til ExitSub. Hvis du kjører denne koden i feilsøkingsmodus, vil du se at den vil gå gjennom løkken 5 ganger. I 5th iterasjon, verdien av variabelen i blir 5 og koden kommer inn i If -kroppen. Nå er Sub ExitSub forlates og returneres til CallExitSub. Neste linje er MsgBox “Exit Sub”:
Som du kan se, ExitSub forlates rett etter Avslutt Sub kommando, så MsgBox “Verdien av i er” og i vil aldri bli henrettet.
Avslutt en funksjon i VBA
Å avslutte en funksjon i VBA ligner på å gå ut av en Sub, bare kommandoen er Avslutt funksjon. I eksemplet opprettet vi ExitFunc som returnerer et helt tall. Sub CallExitFunction kaller denne funksjonen. Her er koden:
1234567891011121314151617181920 | Privat funksjon ExitFunc () som heltallDim i As IntegerFor i = 1 til 10Hvis i = 5 DaExitFunc = iAvslutt funksjonSlutt omNeste jegSluttfunksjonPrivate Sub CallExitFunction ()Dim intFunc som heltallintFunc = ExitFunction ()MsgBox "Verdien av intFunc er" & intFuncSlutt Sub |
I ExitFunc, angir vi først For Loop hvis verdien av i er mindre enn 10:
123 | For i = 1 til 10Neste jeg |
Etter det sjekker vi om verdien av i er lik 5, ved hjelp av If -kommandoen. Hvis verdien er 5, tilordner vi verdien av i til funksjonsresultatet og avslutter funksjonen:
1234 | Hvis i = 5 DaExitFunc = iAvslutt funksjonSlutt om |
Hvis betingelsen ikke er oppfylt, øker følgende setning i med 1 og går inn i For -sløyfen igjen:
1 | Neste jeg |
I CallExitFunction, kaller vi først funksjonen ExitFunc: For å gjøre det må vi deklarere variabelen intFunc skriv heltall og tilordne resultatet av ExitFunc funksjon til det:
123 | Dim intFunc som heltallintFunc = ExitFunction () |
Etter det returnerer vi meldingsboksen med verdien av intFunc:
1 | MsgBox "Verdien av intFunc er" & intFunc |
Hvis du kjører CallExitFunction, vil den først kalle funksjonen ExitFunc. Hvis du kjører denne koden i feilsøkingsmodus, vil du se at den vil gå gjennom løkken 5 ganger. I 5th iterasjon, verdien av variabelen i blir 5 og koden kommer inn i If -kroppen. Nå er verdien av ExitFunc blir i og funksjonen avsluttes og returneres til CallExitFunction. Neste linje er MsgBox “Verdien av intFunc er” og intFunc: