VBA Return - Wie verwende ich die GoSub Return-Anweisung in VBA?

Inhaltsverzeichnis

Excel VBA Return Statement

VBA ist wunderbar und ein Lebensretter für diejenigen, die die In- und Out-VBA-Codierung kennen. Dies kann an unserem Arbeitsplatz viel Zeit sparen. In unseren früheren Artikeln haben wir viele Dinge und Konzepte der VBA-Rückkehr besprochen. Ein solches Konzept ist die GoSub Return-Anweisung. In diesem Artikel werden wir Ihnen diese Konzepte vorstellen.

Was ist die GoSub-Rückgabeerklärung?

Die Anweisung "Go Sub" bedeutet, dass sie in die Codezeile wechselt, die durch die Bezeichnung durch den Namen angegeben ist, und einen bestimmten Satz der Aufgabe ausführt, bis die Anweisung "Return" gefunden wird.

Dies ähnelt der Fehlerbehandlungsanweisung "GoTo Label", aber "GoSub Return" kehrt zur nächsten Codezeile zurück, anstatt mit dem Labelnamen fortzufahren.

Unten finden Sie die Syntax der VBA GoSub Return-Anweisung.

GoSub (Etikettenname)  … Line of Code  (Label - Name):  … Codezeile die Aufgabe auszuführen

Ich weiß, dass es schwierig ist, die Syntax zu lesen, aber wenn Sie das Beispiel verwenden, können Sie das Konzept möglicherweise verstehen.

Bevor ich zu den Beispielen gehe, möchte ich einige Dinge über diese Aussage erzählen.

  • Die GoSub-Anweisung ruft eine Unterroutine in VBA auf, die durch ein Label innerhalb derselben Routine oder Funktion benannt wird.
  • Sowohl GoSub als auch Return sollten sich im selben Verfahren befinden. Wir können hier kein anderes Unterprogrammmakro aufrufen.
  • Sie können beliebig viele GoSub Return-Anweisungen einführen.
  • Eine return-Anweisung setzt die Ausführung des Codes dort fort, wo er aufgehört hat, bevor er zu dem durch einen Labelnamen angegebenen Unterverfahren gesprungen ist.

Wie verwende ich die GoSub Return Statement in VBA?

Beispiel 1

Um die Verwendung dieser Anweisung zu verstehen, lesen Sie zuerst den folgenden Code. Später werde ich Ihnen den Code Zeile für Zeile erklären.

Code:

Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Jetzt läuft Macro1" Return Macro2: MsgBox "Jetzt läuft Macro2" Return Macro3: MsgBox "Jetzt läuft Macro3" Return End Sub

Um diesen Code zu verstehen, führen Sie den Code Zeile für Zeile aus, indem Sie die Taste F8 drücken. Beim ersten Drücken der Taste F8 wird das Makro gestartet.

Drücken Sie nun noch einmal die Taste F8, um zur nächsten Zeile zu gelangen.

Wir alle wissen, dass das Makro den Code zeilenweise ausführt. Wenn Sie jedoch die Taste F8 drücken, wird nicht zur nächsten Zeile gewechselt. Vielmehr funktioniert es anders.

Es ist zu dem Label mit dem Namen "Macro1" gesprungen. Dies liegt daran, dass wir in der vorherigen Anweisung "GoSub" das Makro angewiesen haben, zum Subprozedur-Label-Namen "Macro1" zu wechseln. Dementsprechend ist es zum jeweiligen Label-Namen gesprungen.

Durch Drücken der Taste F8 führt das Excel-Makro nun die Beschriftungsaufgabe „Makro1“ aus, bei der das Ergebnis im Meldungsfeld angezeigt wird.

Klicken Sie im Meldungsfeld auf OK, um zum Codierungsfenster zurückzukehren.

Jetzt hatte es die "Return" -Anweisung hervorgehoben. Wenn Sie die Taste F8 noch einmal drücken, kehrt sie zur vorherigen Codezeile zurück, bevor sie zum Markennamen springt.

Beim letzten Mal wurde der Code "GoSub Macro1" ausgeführt und die Aufgabe "Macro1" für den Labelnamen ausgeführt. Da wir die "Return" -Anweisung erwähnt haben, geht sie zurück zur nächsten Codezeile, d. H.

"GoSub Macro2"

Die Aussage lautet: "Go-to-Label mit dem Namen Macro2". Im Folgenden für die Bezeichnung „Macro2“ habe ich eine Reihe spezifischer Aufgaben erwähnt.

Jetzt erhalten wir die zweite Unterprozeduraufgabe, bei der der Wert im Meldungsfeld angezeigt wird.

Klicken Sie nun auf Ok. Die zweite "Return" -Anweisung wird hervorgehoben.

Wenn Sie nun auf die Taste F8 klicken, wird zur nächsten Codezeile zurückgekehrt, bevor zur Bezeichnung „Macro2“ zurückgekehrt wird. Jetzt wird "GoSub Macro3" hervorgehoben.

Nun geht es zur Bezeichnung „Macro3“, drücken Sie die Taste F8.

Nun wird die dritte Etikettenaufgabe ausgeführt.

Klicken Sie nun auf OK. Es wird die Anweisung "Return" hervorheben.

Drücken Sie nun noch einmal die Taste F8. Es springt zurück zur Codezeile "Exit Sub".

Nein, es wird das Unterprogramm verlassen. Andernfalls muss das Wort "Exit Sub" hinzugefügt werden, da sonst ein Fehler auftritt.

Beispiel 2

Schauen Sie sich nun ein weiteres Beispiel für die Verwendung der GoSub Return-Anweisung an.

Code:

Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Eingabeaufforderung: = "Bitte geben Sie hier die Nummer ein", Titel: = "Divsion Number") Wenn Num> 10, dann ist GoSub Division Else MsgBox "Number kleiner als 10" Exit Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub

Dieser Code fordert Sie auf, die Nummer> 10 einzugeben. Wenn die Zahl> 10 ist, wird die Aufgabe ausgeführt, sie durch 5 zu teilen (Labelname ist "Division"), oder die Meldung wird als "Zahl ist kleiner als 10" angezeigt.

Dinge, an die man sich erinnern sollte

  • Der Labelname sollte in der GoSub- und der Return-Anweisung identisch sein, und in der return-Anweisung sollte auf den Labelnamen ein Doppelpunkt (:) folgen.
  • Verwenden Sie in VBA immer Exit Sub, nachdem alle return-Anweisungen erstellt wurden, um die Fehlermeldung zu vermeiden.

Interessante Beiträge...