VBA Avsluta sub eller funktion

I VBA kan du avsluta en sub eller funktion genom att använda Avsluta Sub eller Avsluta funktion kommandon.

1 Avsluta Sub
1 Avsluta funktion

När körningen av koden kommer till Avsluta Sub eller Avsluta funktion, kommer den att avsluta en del eller funktion och fortsätta med annan kodkörning.

Om du vill lära dig hur du avslutar en Sub on Error, klicka på den här länken: VBA On Error Exit Sub

Om du vill lära dig hur du avslutar en hel kodkörning, klicka på den här länken: VBA End

Avsluta en Sub i VBA

Du kommer att se i exemplet vad som händer när vi använder Avsluta Sub kommando i en sub. Vi skapade en Sub ExitSub, som har Avsluta Sub kommando inuti. SubCallExitSub kallar detta Sub. Här är koden:

123456789101112131415161718 Private Sub ExitSub ()Dim i As IntegerFör i = 1 till 10Om i = 5 DåAvsluta SubMsgBox "Värdet på i är" & iAvsluta omNästa iAvsluta SubPrivate Sub CallExitSub ()Ring ExitSubMsgBox "Exit Sub"Avsluta Sub

I ExitSub, anger vi först For Loop om värdet på i är mindre än 10:

123 För i = 1 till 10Nästa i

Efter det kontrollerar vi om värdet på i är lika med 5, med hjälp av kommandot If. Om värdet är 5 vill vi lämna Sub och returnera meddelanderutan med värdet i:

1234 Om i = 5 DåAvsluta SubMsgBox "Värdet på i är" & iAvsluta om

Om villkoret inte är uppfyllt ökar följande sats i med 1 och går in i For -slingan igen:

1 Nästa i

I CallExitSub, vi kallar först Sub ExitSub:

1 Ring ExitSub

Efter det skickar vi tillbaka meddelanderutan:

1 MsgBox "Exit Sub"

Om du kör CallExitSub, det kommer först att ringa till ExitSub. Om du kör den här koden i felsökningsläget ser du att den kommer att gå igenom slingan 5 gånger. I 5th iteration, värdet av variabeln i blir 5 och koden går in i If -kroppen. Nu är Sub ExitSub avslutas och återlämnas till CallExitSub. Nästa rad är MsgBox “Exit Sub”:

Som du kan se, ExitSub lämnas direkt efter Avsluta Sub kommando, så MsgBox “Värdet på i är” & i kommer aldrig att utföras.

Avsluta en funktion i VBA

Att lämna en funktion i VBA liknar att lämna en Sub, bara kommandot är Avsluta funktion. I exemplet skapade vi ExitFunc som returnerar ett heltal. Sub CallExitFunction kallar denna funktion. Här är koden:

1234567891011121314151617181920 Privat funktion ExitFunc () som heltalDim i As IntegerFör i = 1 till 10Om i = 5 DåExitFunc = iAvsluta funktionAvsluta omNästa iAvsluta funktionPrivate Sub CallExitFunction ()Dim intFunc som heltalintFunc = ExitFunction ()MsgBox "Värdet på intFunc är" & intFuncAvsluta Sub

I ExitFunc, anger vi först For Loop om värdet på i är mindre än 10:

123 För i = 1 till 10Nästa i

Efter det kontrollerar vi om värdet på i är lika med 5, med hjälp av kommandot If. Om värdet är 5 tilldelar vi värdet på i till funktionsresultatet och lämnar funktionen:

1234 Om i = 5 DåExitFunc = iAvsluta funktionAvsluta om

Om villkoret inte är uppfyllt ökar följande sats i med 1 och går in i For -slingan igen:

1 Nästa i

I CallExitFunction, vi kallar först funktionen ExitFunc: För att göra det måste vi deklarera variabeln intFunc skriv heltal och tilldela resultatet av ExitFunc fungerar till det:

123 Dim intFunc som heltalintFunc = ExitFunction ()

Efter det returnerar vi meddelanderutan med värdet intFunc:

1 MsgBox "Värdet på intFunc är" & intFunc

Om du kör CallExitFunction, det kommer först att kalla funktionen ExitFunc. Om du kör den här koden i felsökningsläget ser du att den kommer att gå igenom slingan 5 gånger. I 5th iteration, värdet av variabeln i blir 5 och koden går in i If -kroppen. Nu är värdet på ExitFunc blir i och funktionen avslutas och återgår till CallExitFunction. Nästa rad är MsgBox ”Värdet på intFunc är” och intFunc:

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave