VBA Sub of functie afsluiten

In VBA kun je een sub of functie afsluiten met de Sluit sub of Functie verlaten commando's.

1 Sluit sub
1 Functie verlaten

Wanneer de uitvoering van de code komt tot: Sluit sub of Functie verlaten, zal het een Sub of Functie verlaten en doorgaan met het uitvoeren van elke andere code.

Als je wilt leren hoe je een Sub bij fout afsluit, klik dan op deze link: VBA Bij fout Sub afsluiten

Als u wilt leren hoe u een volledige code-uitvoering kunt beëindigen, klikt u op deze link: VBA End

Verlaat een Sub in VBA

U zult in het voorbeeld zien wat er gebeurt als we de gebruiken Sluit sub commando in een Sub. We hebben een Sub gemaakt ExitSub, die de heeft Sluit sub commando binnen. de onderdaanCallExitSub noemt dit Sub. Hier is de code:

123456789101112131415161718 Privé Sub ExitSub()Dim ik als geheel getalVoor i = 1 tot 10Als ik = 5 DanSluit subMsgBox "De waarde van i is" & iStop alsvolgende iEinde subPrivé Sub-oproepExitSub()Bel AfsluitenSubMsgBox "Sub afsluiten"Einde sub

In de ExitSub, voeren we eerst de For Loop in als de waarde van i kleiner is dan 10:

123 Voor i = 1 tot 10volgende i

Daarna controleren we met het If-commando of de waarde van i gelijk is aan 5. Als de waarde 5 is, willen we de Sub verlaten en het berichtvenster retourneren met de waarde van i:

1234 Als ik = 5 DanSluit subMsgBox "De waarde van i is" & iStop als

Als niet aan de voorwaarde wordt voldaan, wordt i met 1 verhoogd en wordt de For-lus opnieuw ingevoerd:

1 volgende i

In de CallExitSub, noemen we eerst de Sub ExitSub:

1 Bel AfsluitenSub

Daarna retourneren we het berichtvenster:

1 MsgBox "Exit Sub"

Als u de CallExitSub, het zal eerst de . noemen ExitSub. Als je deze code in de debug-modus uitvoert, zul je zien dat deze 5 keer door de lus gaat. in de 5e iteratie, wordt de waarde van de variabele i 5 en komt de code in de If-body. Nu de Sub ExitSub wordt afgesloten en keert terug naar de CallExitSub. De volgende regel is MsgBox "Sub afsluiten":

Zoals je kunt zien, is de ExitSub wordt direct daarna verlaten Sluit sub commando, dus de MsgBox "De waarde van i is" & i zal nooit worden uitgevoerd.

Een functie in VBA afsluiten

Het verlaten van een functie in VBA is vergelijkbaar met het afsluiten van een Sub, alleen het commando is: Functie verlaten. In het voorbeeld hebben we de . gemaakt ExitFunc die een geheel getal retourneert. de onderdaan CallExitFunctie roept deze functie op. Hier is de code:

1234567891011121314151617181920 Privéfunctie ExitFunc() As IntegerDim ik als geheel getalVoor i = 1 tot 10Als ik = 5 DanExitFunc = iFunctie verlatenStop alsvolgende iFunctie beëindigenPrivate Sub CallExitFunction()Dim intFunc As IntegerintFunc = Afsluitfunctie()MsgBox "De waarde van intFunc is " & intFuncEinde sub

In de AfsluitenFunc, voeren we eerst de For Loop in als de waarde van i kleiner is dan 10:

123 Voor i = 1 tot 10volgende i

Daarna controleren we met het If-commando of de waarde van i gelijk is aan 5. Als de waarde 5 is, kennen we de waarde van i toe aan het functieresultaat en verlaten we de functie:

1234 Als ik = 5 DanExitFunc = iFunctie verlatenStop als

Als niet aan de voorwaarde wordt voldaan, wordt i met 1 verhoogd en wordt de For-lus opnieuw ingevoerd:

1 volgende i

In de CallExitFunctie, noemen we eerst de functie ExitFunc: Om dat te doen moeten we de variabele declareren intFunc typ integer en wijs het resultaat van de . toe ExitFunc functie ervoor:

123 Dim intFunc As IntegerintFunc = Afsluitfunctie()

Daarna retourneren we het berichtvenster met de waarde van intFunc:

1 MsgBox "De waarde van intFunc is " & intFunc

Als u de CallExitFunctie, het zal eerst de functie aanroepen AfsluitenFunc. Als je deze code in de debug-modus uitvoert, zul je zien dat deze 5 keer door de lus gaat. in de 5e iteratie, wordt de waarde van de variabele i 5 en komt de code in de If-body. Nu de waarde van de ExitFunc wordt i en de functie wordt verlaten en keert terug naar de CallExitFunctie. De volgende regel is MsgBox “De waarde van intFunc is ” & intFunc:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave