VBA-retur - Hvordan bruges GoSub Return Statement i VBA?

Indholdsfortegnelse

Excel VBA Returerklæring

VBA er vidunderlig og en livredder for dem, der kender ind og ud af VBA-kodning. Det kan spare masser af tid på vores arbejdsplads. I vores tidligere artikler har vi diskuteret mange ting og begreber om VBA-tilbagevenden. Et sådant koncept er GoSub Return-erklæringen. I denne artikel vil vi introducere dig til disse begreber.

Hvad er GoSub Return Statement?

Erklæringen "Go Sub" betyder, at den vil gå til den kodelinje, der er angivet med etiketten, gennem navnet og udfører et specifikt sæt af opgaven, indtil den finder udsagnet "Return".

Dette svarer til fejlhåndteringserklæringen "GoTo Label", men hvad "GoSub Return" gør, er at den vender tilbage til den næste kodelinje i stedet for at fortsætte fra etiketnavnet.

Nedenfor er syntaksen for VBA GoSub Return-erklæringen.

GoSub (etiketnavn)  …  Kodelinje (etiketnavn ):  … Kodelinje for at udføre opgaven

Jeg ved, at det er vanskeligt at forstå ved at læse syntaksen, men ved hjælp af eksemplet kan du muligvis forstå konceptet.

Før jeg går til eksempler, lad mig fortælle et par ting om denne erklæring.

  • GoSub-erklæring kalder underrutine i VBA, som er navngivet af en etiket inden for samme rutine eller funktion.
  • Både GoSub og Return skal være inden for samme procedure. Vi kan ikke kalde en anden subrutine makro her.
  • Du kan introducere et hvilket som helst antal GoSub Return-udsagn.
  • En returerklæring vil fortsætte udførelsen af ​​koden, hvorfra den slap, før den sprang til underproceduren angivet med et etiketnavn.

Hvordan bruges GoSub Return Statement i VBA?

Eksempel nr. 1

For at forstå brugen af ​​denne erklæring skal du først se på nedenstående kode. Senere vil jeg forklare dig koden linje for linje.

Kode:

Sub Go_Sub_Return () GoSub Macro1 'Etiketnavn1 GoSub Macro2' Etiketnavn2 GoSub Macro3 'Etiketnavn3 Afslut Sub Makro1: MsgBox "Kører nu Macro1" Returner Macro2: MsgBox "Kører nu Macro2" Return Macro3: MsgBox "Kører nu Macro3" Return End Sub

For at forstå denne kode, lad os køre koden linje for linje ved at trykke på F8-tasten. Når du trykker på F8-tasten første gang, starter den makroen, der kører.

Tryk nu på F8-tasten endnu en gang for at gå til næste linje.

Vi ved alle, at makro kører koden linje for linje, men hvis du trykker på F8-tasten, går den ikke til næste linje; snarere fungerer det anderledes.

Det er sprunget til etiketten navngivet som “Macro1”, det er fordi vi i den foregående erklæring “GoSub” har instrueret makroen om at gå til underprocedurens etiketnavn “Macro1”, så det er derfor sprunget til det respektive etiketnavn.

Nu ved at trykke på F8-tasten, vil excel-makroen udføre etiketten "Makro1" for at vise resultatet i meddelelsesboksen.

Klik på Ok i meddelelsesfeltet for at vende tilbage til kodningsvinduet.

Nu havde det fremhævet "Return" -erklæringen. Hvis du trykker endnu en gang på F8-tasten, vil det “returnere tilbage” til den forrige kodelinje, før den sprang til etiketnavnet.

Sidste gang den udførte koden "GoSub Macro1", og den udførte labelnavnet "Macro1" -opgaven. Da vi har nævnt ”Return” -erklæringen, er den tilbage til næste kodelinje, dvs.

“GoSub Macro2”

Hvad der er erklæring siger, er, "gå til etiket ved navn Macro2". I nedenstående for mærke “Macro2” har jeg nævnt et specifikt sæt opgaver.

Nu får vi den anden delprocedureopgave at vise værdi i meddelelsesfeltet.

Klik nu på, Ok. Det fremhæver den anden ”Return” -erklæring.

Når du klikker på F8-tasten, vender den tilbage til næste linje kode, før den vender tilbage til etiketten "Macro2". Nu vil det fremhæve “GoSub Macro3”.

Nu går det til etiketten "Macro3", tryk på F8-tasten.

Nu udføres tredje labelopgave.

Klik nu på, OK. Det vil fremhæve "Return" -erklæringen.

Tryk nu på F8-tasten en gang til; det springer tilbage til linjen med kode "Exit Sub."

Nej, det vil forlade underrutinen. Det er nødvendigt at tilføje ordet "Exit Sub" ellers, og det støder på en fejl.

Eksempel 2

Se nu på endnu et eksempel på brug af GoSub Return-erklæringen.

Kode:

Sub Go_Sub_Return1 () Dim Num Som Long Num = Application.InputBox (Prompt: = "Indtast nummeret her", Titel: = "Divsion Number") Hvis Num> 10 Så er GoSub Division Else MsgBox "Number mindre end 10" Exit Underafslutning ved afslutning Underafdeling: MsgBox Num / 5 Retur Afslutning af underafdeling

Denne kode beder dig om at indtaste nummeret, der er> 10. Hvis tallet er> 10, vil det udføre opgaven med at dividere det med 5 (etiketnavn er "division"), ellers vil det vise beskeden som "Nummer er mindre end 10".

Ting at huske

  • Etiketnavnet skal være det samme i GoSub- og Return-sætningen, og i return-sætningen skal etiketnavnet efterfølges af et kolon (:).
  • Brug altid Exit Sub i VBA, når alle returneringserklæringer er fremsat for at undgå fejlmeddelelsen.

Interessante artikler...