VBA Retur - Hur använder jag GoSub Return Statement i VBA?

Innehållsförteckning

Excel VBA Return Statement

VBA är underbart och en livräddare för dem som känner till och från VBA-kodning. Det kan spara massor av tid på vår arbetsplats. I våra tidigare artiklar har vi diskuterat många saker och begrepp med VBA-retur. Ett sådant koncept är GoSub Return-uttalandet. I den här artikeln presenterar vi dig för dessa begrepp.

Vad är GoSub Return Statement?

Uttrycket "Go Sub" betyder att det går till kodraden som anges med etiketten genom namn och utför en specifik uppsättning av uppgiften tills den hittar uttalandet "Return".

Detta liknar felhanteringsuttrycket "GoTo Label", men vad "GoSub Return" gör är att det återgår till nästa kodrad snarare än att fortsätta från etikettnamnet.

Nedan är syntaxen för VBA GoSub Return-uttalandet.

GoSub (Etikettnamn)  …  Kodrad (Etikettnamn ):  … Kodrad för att utföra uppgiften

Jag vet att det är svårt att förstå från att läsa syntaxen men med hjälp av exemplet kanske du kan förstå konceptet.

Innan jag går till exempel, låt mig berätta några saker om detta uttalande.

  • GoSub-uttalande anropar underrutin i VBA, som namnges av en etikett inom samma rutin eller funktion.
  • Både GoSub och Return bör ligga inom samma procedur. Vi kan inte kalla ett annat subrutinmakro här.
  • Du kan införa valfritt antal GoSub Return-uttalanden.
  • En returuttalande kommer att fortsätta körningen av koden från vilken den slutade innan den hoppade till underproceduren som anges med ett etikettnamn.

Hur använder jag GoSub Return Statement i VBA?

Exempel 1

För att förstå användningen av detta uttalande, titta på koden nedan först. Senare kommer jag att förklara för dig koden rad för rad.

Koda:

Sub Go_Sub_Return () GoSub Macro1 'Etikettnamn1 GoSub Macro2' Etikettnamn2 GoSub Macro3 'Etikettnamn3 Avsluta Sub Macro1: MsgBox "Nu kör Macro1" Return Macro2: MsgBox "Nu kör Macro2" Return Macro3: MsgBox "Nu kör Macro3" Return End Sub

För att förstå den här koden, låt oss köra koden rad för rad genom att trycka på F8-tangenten. När du trycker på F8-tangenten första gången, startar den makrokörningen.

Tryck nu på F8-tangenten en gång till för att gå till nästa rad.

Vi vet alla att makro kommer att köra koden rad för rad, men om du trycker på F8-tangenten går den inte till nästa rad; snarare fungerar det annorlunda.

Det har hoppat till etiketten som heter "Macro1", det beror på att i föregående uttalande "GoSub" har vi instruerat makrot att gå till underprocedurnamnet "Macro1", så det har följaktligen hoppat till respektive etikettnamn.

Nu genom att trycka på F8-tangenten kommer excel-makrot att utföra etiketten "Macro1" för att visa resultatet i meddelandefältet.

Klicka på Ok i meddelanderutan för att återgå till kodningsfönstret.

Nu hade det markerat uttalandet "Return". Om du trycker på F8-tangenten en gång till, vad den kommer att göra är att den “Return Back” till föregående kodrad innan den hoppade till etikettnamnet.

Förra gången körde den koden "GoSub Macro1" och den utförde etikettnamnet "Macro1". Eftersom vi har nämnt "Return" -uttalandet är det tillbaka till nästa kodrad, dvs.

“GoSub Macro2”

Vad som sägs är, "gå till etikett med namnet Macro2". Nedanför för etiketten ”Macro2” har jag nämnt en specifik uppsättning uppgifter.

Nu får vi den andra delproceduruppgiften att visa värde i meddelandefältet.

Klicka nu på, Ok. Det markerar det andra ”Return” -uttalandet.

När du klickar på F8-tangenten återgår den till nästa kodrad innan den återgår till etiketten ”Macro2”. Nu kommer den att markera “GoSub Macro3”.

Nu går det till etiketten “Macro3”, tryck på F8-tangenten.

Nu kommer den tredje etikettuppgiften att utföras.

Klicka nu på OK. Det kommer att markera ”Return” uttalandet.

Tryck nu på F8-tangenten en gång till; det kommer att hoppa tillbaka till kodraden "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

  • Etikettnamnet ska vara detsamma i GoSub- och Return-uttalande och i returuttalandet ska etikettnamnet följas av ett kolon (:).
  • Använd alltid Exit Sub i VBA när alla returuttalanden har gjorts för att undvika felmeddelandet.

Intressanta artiklar...