Vrátenie VBA - Ako používať výkaz návratov GoSub vo VBA?

Výkaz výnosov programu Excel VBA

VBA je úžasný a životabudič pre tých, ktorí poznajú kódovanie VBA aj mimo neho. Na našom pracovisku to môže ušetriť veľa času. V našich predchádzajúcich článkoch sme diskutovali o mnohých veciach a konceptoch návratu VBA. Jedným z takýchto konceptov je vyhlásenie GoSub Return. V tomto článku vám predstavíme tieto pojmy.

Čo je vyhlásenie o vrátení produktu GoSub?

Výrok „Go Sub“ znamená, že prejde na riadok kódu označený štítkom cez meno a vykoná konkrétnu množinu úlohy, kým nenájde výrok „Return“.

Je to podobné ako vyhlásenie obsluhy chýb „GoTo Label“, ale to, čo „GoSub Return“ robí, je to, že sa vráti späť na ďalší riadok kódu a nebude pokračovať od názvu štítku.

Nižšie je uvedená syntax príkazu VBA GoSub Return.

GoSub (Názov štítku)  … Riadok kódu  (Názov štítku):  … Riadok kódu na vykonanie úlohy

Viem, že je ťažké pochopiť z čítania syntaxe, ale na príklade môžete pochopiť tento koncept.

Predtým, ako idem na príklady, dovoľte mi povedať pár vecí o tomto tvrdení.

  • Príkaz GoSub volá podprogram vo VBA, ktorý je pomenovaný štítkom v rámci tej istej rutiny alebo funkcie.
  • GoSub aj Return by mali byť v rámci rovnakého postupu. Tu nemôžeme nazvať ďalšie makro podprogramu.
  • Môžete zaviesť ľubovoľný počet príkazov GoSub Return.
  • Príkaz na vrátenie bude pokračovať vo vykonávaní kódu od miesta, kde prestal, kým neprešiel na podproces označený názvom štítku.

Ako používať vyhlásenie o návrate GoSub vo VBA?

Príklad č

Aby ste pochopili použitie tohto vyhlásenia, najskôr sa pozrite na nižšie uvedený kód. Neskôr vám vysvetlím kód po riadku.

Kód:

Sub Go_Sub_Return () GoSub Macro1 'Názov štítku1 GoSub Macro2' Názov štítku2 GoSub Macro3 'Názov štítku3 Ukončenie Sub Makro1: MsgBox "Teraz beží Makro1" Späť Makro2: MsgBox "Teraz beží Macro2" Späť Makro3: MsgBox "Teraz beží Macro3" Späť Koniec Sub

Aby sme tomuto kódu porozumeli, spustime kód po riadku stlačením klávesu F8. Po prvom stlačení klávesu F8 sa inicializuje spustenie makra.

Teraz stlačte kláves F8 ešte raz a prejdite na ďalší riadok.

Všetci vieme, že makro spustí kód po riadku, ale ak stlačíte kláves F8, neprejde na ďalší riadok; skôr to funguje inak.

Preskočilo na štítok s názvom „Macro1“, pretože v predchádzajúcom výroku „GoSub“ sme dali makru pokyn, aby prešlo na názov štítku podprocesu „Macro1“, takže zodpovedajúcim spôsobom preskočilo na názov príslušného štítku.

Teraz stlačením klávesu F8 vykoná makro programu Excel úlohu „Makro1“ a zobrazí výsledok v okne správy.

Kliknutím na tlačidlo OK v okne správy sa vrátite do okna kódovania.

Teraz to zvýraznilo vyhlásenie „Návrat“. Ak stlačíte kláves F8 ešte raz, urobí to tak, že sa vráti na predchádzajúci riadok kódu a potom skočí na názov štítku.

Naposledy vykonal kód „GoSub Macro1“ a vykonal úlohu označenia „Macro1“. Pretože sme spomenuli príkaz „Return“, je späť na ďalší riadok kódu, tj

„GoSub Macro2“

Tvrdenie hovorí: „štítok go-to s názvom Macro2“. V nasledujúcej časti označenia „Macro2“ som spomenul konkrétny súbor úloh.

Teraz dostaneme druhú úlohu podprocesu, ktorá predstavuje hodnotu v okne správy.

Teraz kliknite na, OK. Zvýrazní sa druhé vyhlásenie „Návrat“.

Teraz sa po kliknutí na kláves F8 vráti na ďalší riadok kódu, kým sa vráti na štítok „Macro2“. Teraz sa zvýrazní „GoSub Macro3“.

Teraz prejde na štítok „Macro3“ a stlačte kláves F8.

Teraz sa vykoná tretia úloha štítku.

Teraz kliknite na, OK. Zvýrazní sa vyhlásenie „Návrat“.

Teraz stlačte kláves F8 ešte raz; preskočí späť na riadok kódu „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

  • Názov štítku by mal byť v príkazoch GoSub a Return rovnaký a za menom štítku návratu by mal nasledovať dvojbodka (:).
  • Po vykonaní všetkých návratových príkazov vždy použite Exit Sub vo VBA, aby ste sa vyhli chybovému hláseniu.

Zaujímavé články...