VBA-terugkeer - Hoe GoSub Return Statement in VBA te gebruiken?

Excel VBA-retourverklaring

VBA is geweldig en een redder in nood voor degenen die de in en uit VBA-codering kennen. Het kan veel tijd besparen op onze werkplek. In onze eerdere artikelen hebben we veel dingen en concepten van VBA-terugkeer besproken. Een voorbeeld van zo'n concept is de GoSub Return-instructie. In dit artikel laten we u kennismaken met deze concepten.

Wat is een GoSub-retourverklaring?

De instructie "Go Sub" betekent dat het naar de coderegel gaat die wordt aangegeven door label tot en met naam en een specifieke set van de taak uitvoert totdat het de instructie "Return" vindt.

Dit is vergelijkbaar met de foutafhandelingsinstructie "GoTo Label", maar wat "GoSub Return" doet, is dat het teruggaat naar de volgende regel code in plaats van verder te gaan vanaf de labelnaam.

Hieronder staat de syntaxis van de VBA GoSub Return-instructie.

GoSub (labelnaam)  … Regel code  (  labelnaam ): … Regel code om de taak uit te voeren

Ik weet dat het moeilijk te begrijpen is door de syntaxis te lezen, maar door het voorbeeld te gebruiken, kun je het concept misschien begrijpen.

Voordat ik naar voorbeelden ga, wil ik eerst een paar dingen over deze verklaring vertellen.

  • GoSub-instructie roept subroutine aan in VBA, die wordt genoemd door een label binnen dezelfde routine of functie.
  • Zowel GoSub als Return moeten binnen dezelfde procedure vallen. We kunnen hier geen andere subroutinemacro aanroepen.
  • U kunt een onbeperkt aantal GoSub Return-instructies invoeren.
  • Een return-instructie zet de uitvoering van de code voort waar deze was gebleven voordat deze naar de subprocedure sprong die wordt aangegeven door een labelnaam.

Hoe gebruik je GoSub Return Statement in VBA?

Voorbeeld 1

Bekijk eerst de onderstaande code om het gebruik van deze verklaring te begrijpen. Later zal ik u de code regel voor regel uitleggen.

Code:

Sub Go_Sub_Return () GoSub Macro1 'Labelnaam1 GoSub Macro2' Labelnaam2 GoSub Macro3 'Labelnaam3 Exit Sub Macro1: MsgBox "Wordt nu Macro1 uitgevoerd" Return Macro2: MsgBox "Nu Macro2 wordt uitgevoerd" Return Macro3: MsgBox "Nu Macro3 wordt uitgevoerd" Return End Sub

Om deze code te begrijpen, laten we de code regel voor regel uitvoeren door op de F8-toets te drukken. Als u de eerste keer op de F8-toets drukt, wordt de macro gestart.

Druk nu nog een keer op de F8-toets om naar de volgende regel te gaan.

We weten allemaal dat de macro de code regel voor regel zal uitvoeren, maar als u op de F8-toets drukt, gaat het niet naar de volgende regel; het werkt eerder anders.

Het is naar het label met de naam "Macro1" gesprongen, dit komt omdat we in de vorige instructie "GoSub" de macro de opdracht hebben gegeven om naar de subprocedure labelnaam "Macro1" te gaan, dus dienovereenkomstig is het naar de respectievelijke labelnaam gesprongen.

Door nu op de F8-toets te drukken, zal Excel-macro de label "Macro1" -taak uitvoeren om het resultaat in het berichtvenster te tonen.

Klik op OK in het berichtvenster om terug te keren naar het coderingsvenster.

Nu had het de "Return" -verklaring benadrukt. Als u nog een keer op de F8-toets drukt, zal het "terugkeren" naar de vorige regel code voordat het naar de labelnaam springt.

De laatste keer dat het de code "GoSub Macro1" uitvoerde, en het de labelnaam "Macro1" -taak uitvoerde. Aangezien we de "Return" -instructie hebben genoemd, is het terug naar de volgende regel code, dwz

"GoSub Macro2"

Wat de verklaring zegt, is "go-to label genaamd Macro2". In het onderstaande voor label "Macro2" heb ik een specifieke reeks taken genoemd.

Nu krijgen we de tweede subprocedure-taak om waarde in het berichtvenster te tonen.

Klik nu op, Ok. Het zal de tweede "Return" -verklaring markeren.

Door nu op de F8-toets te klikken, keert het terug naar de volgende regel code voordat het terugkeert naar het label "Macro2". Nu zal het "GoSub Macro3" markeren.

Nu gaat het naar het label "Macro3", druk op de F8-toets.

Nu wordt de derde labeltaak uitgevoerd.

Klik nu op, OK. Het zal de "Return" -verklaring benadrukken.

Druk nu nog een keer op de F8-toets; het springt terug naar de regel met code "Exit Sub".

No, it will exit the subroutine. It is necessary to add the word “Exit Sub” otherwise, and it will encounter an error.

Example #2

Now take a look at one more example of using the GoSub Return statement.

Code:

Sub Go_Sub_Return1() Dim Num As Long Num = Application.InputBox (Prompt:="Please enter the number here", Title:="Divsion Number") If Num> 10 Then GoSub Division Else MsgBox "Number is less than 10" Exit Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub

This code will ask you to enter the number which is>10. If the number is>10, then it will perform the task of dividing it by 5 (Label Name is “Division”), or else it will show the message as “Number is less than 10”.

Things to Remember

  • De labelnaam moet hetzelfde zijn in de GoSub- en Return-instructie, en in de retourinstructie moet de labelnaam worden gevolgd door een dubbele punt (:).
  • Gebruik altijd Exit Sub in VBA nadat alle retourverklaringen zijn gemaakt om het foutbericht te voorkomen.

Interessante artikelen...