VBA-Rückgabe

Excel VBA Return Statement

VBA ist wunderbar und ein Lebensretter für diejenigen, die sich mit VBA-Codierung auskennen. Es kann an unserem Arbeitsplatz eine Menge 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 zu der 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 [Label Name] ... .. Codezeile [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 Beispielen gehe, möchte ich einige Dinge über diese Aussage erzählen.

  • Die GoSub-Anweisung ruft eine Unterroutine in vba auf, die von einem Label innerhalb derselben Routine oder Funktion benannt wird.
  • Sowohl GoSub als auch Return sollten sich innerhalb derselben Prozedur 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 der durch einen Labelnamen angegebenen Unterprozedur gesprungen ist.

Wie verwende ich die GoSub Return Statement in VBA?

Sie können diese VBA Return Excel-Vorlage hier herunterladen - VBA Return Excel-Vorlage

Beispiel 1

Um die Verwendung dieser Anweisung zu verstehen, schauen Sie sich zuerst den folgenden Code an. Später erkläre ich Ihnen den Code zeilenweise.

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, können Sie den Code Zeile für Zeile ausführen, 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, aber wenn Sie die Taste F8 drücken, wird nicht in die nächste Zeile gewechselt, sondern es funktioniert 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, sodass es dementsprechend zum jeweiligen Label-Namen gesprungen ist.

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

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

Jetzt hat es die "Return" -Anweisung hervorgehoben, wenn Sie die F8-Taste noch einmal drücken, wird es zur vorherigen Codezeile "Return" zurückkehren, bevor es zum Labelnamen springt.

Das letzte Mal, als es den Code "GoSub Macro1" ausführte und die Aufgabe "Macro1" für den Markennamen ausführte, da wir die Anweisung "Return" erwähnt haben, geht es 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 bestimmte Reihe von Aufgaben erwähnt.

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

Klicken Sie nun auf OK, um die zweite "Return" -Anweisung hervorzuheben.

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.

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

Nun wird die dritte Etikettenaufgabe ausgeführt.

Klicken Sie nun auf OK, um die Anweisung "Return" hervorzuheben.

Drücken Sie nun noch einmal die Taste F8, um zur Codezeile „Exit Sub“ zurückzukehren.

Nein, es wird das Unterprogramm verlassen. Es ist notwendig, das Wort "Exit Sub" hinzuzufügen, 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 die Nummer hier ein", Titel: = "Divsion Number") Wenn Num> 10, dann ist die 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 Zahl einzugeben, die> 10 ist. Wenn die Zahl> 10 ist, führt er die Aufgabe aus, sie durch 5 zu teilen (Labelname ist „Division“), oder die Meldung wird als „Nummer ist“ angezeigt weniger als 10".

Dinge, an die man sich erinnern sollte

  • Der Beschriftungsname sollte in der GoSub- und Return-Anweisung identisch sein, und in der Rückgabeanweisung sollte auf den Beschriftungsnamen ein Doppelpunkt (:) folgen.
  • Verwenden Sie Exit Sub in VBA immer, nachdem alle return-Anweisungen ausgeführt wurden, um die Fehlermeldung zu vermeiden.