Návrat VBA | Jak používat prohlášení o vrácení GoSub ve VBA?

Prohlášení o vrácení Excel VBA

VBA je úžasný a zachránce pro ty, kteří znají kódování VBA i mimo něj, může na našem pracovišti ušetřit spoustu času. V našich dřívějších článcích jsme diskutovali o mnoha věcech a koncepcích návratu VBA. Jedním z takových konceptů je příkaz GoSub Return. V tomto článku vám představíme tyto koncepty.

Co je prohlášení o vrácení GoSub?

Výrok „Go Sub“ znamená, že přejde na řádek kódu označeného štítkem přes název a provede konkrétní sadu úkolu, dokud nenajde příkaz „Return“.

Je to podobné jako s popisovačem chyb „GoTo Label“, ale to, co „GoSub Return“ dělá, je, že se vrátí zpět na další řádek kódu, místo aby pokračovalo od názvu štítku.

Níže je uvedena syntaxe příkazu VBA GoSub Return.

GoSub [Název štítku] … .. Řádek kódu [Název štítku]: … .. Řádek kódu k provedení úkolu

Vím, že je těžké pochopit ze čtení syntaxe, ale na příkladu můžete pochopit tento koncept.

Než půjdu k příkladům, dovolte mi říci pár věcí o tomto tvrzení.

  • Příkaz GoSub volá podprogram ve VBA, který je pojmenován štítkem ve stejné rutině nebo funkci.
  • GoSub i Return by měly být ve stejné proceduře, zde nemůžeme volat jiné makro podprogramu.
  • Můžete zavést libovolný počet příkazů GoSub Return.
  • Příkaz pro návrat bude pokračovat v provádění kódu od místa, kde přestal, než přeskočil na podproces označený názvem štítku.

Jak používat prohlášení o vrácení GoSub ve VBA?

Tuto šablonu VBA pro návrat Excel si můžete stáhnout zde - VBA šablonu pro návrat Excel

Příklad č. 1

Abyste pochopili použití tohoto prohlášení, podívejte se nejprve na níže uvedený kód, později vám vysvětlím kód po řádku.

Kód:

 Sub Go_Sub_Return () GoSub Macro1 'Název štítku1 GoSub Macro2' Název štítku2 GoSub Macro3 'Název štítku3 Konec Sub Makro1: MsgBox "Nyní běží Macro1" Zpět Makro2: MsgBox "Nyní běží Macro2" Zpět Makro3: MsgBox "Nyní běží Macro3" Zpět Konec Sub 

Abychom tomuto kódu porozuměli, umožníme spustit kód po řádku stisknutím klávesy F8. Po prvním stisknutí klávesy F8 se spustí makro.

Nyní stiskněte klávesu F8 ještě jednou a přejděte na další řádek.

Všichni víme, že makro spustí kód po řádku, ale pokud stisknete klávesu F8, nepřejde na další řádek, funguje to jinak.

Přeskočilo na štítek s názvem „Macro1“, je to proto, že v předchozím prohlášení „GoSub“ jsme instruovali makro, aby přešlo na název štítku podprocesu „Macro1“, takže podle toho přeskočilo na název příslušného štítku.

Nyní stisknutím klávesy F8 provede makro aplikace Excel úlohu označující „Makro1“ zobrazující výsledek v okně se zprávou.

Kliknutím na OK v okně se zprávou se vrátíte do kódovacího okna.

Nyní zvýraznilo prohlášení „Návrat“, pokud stisknete klávesu F8 ještě jednou, co udělá, bude „Vrátit zpět“ na předchozí řádek kódu, než přejde na název štítku.

Naposledy spustil kód „GoSub Macro1“ a provedl úlohu názvu štítku „Macro1“, protože jsme zmínili příkaz „Return“, je zpět na další řádek kódu, tj.

„GoSub Macro2“

Co říká prohlášení, je „štítek go-to pojmenovaný jako Macro2“. V níže uvedeném štítku „Macro2“ jsem uvedl konkrétní sadu úkolů.

Nyní dostaneme druhou podprocesovou úlohu zobrazování hodnoty v okně se zprávou.

Nyní klikněte na Ok, zvýrazní se druhý příkaz „Návrat“.

Po kliknutí na klávesu F8 se nyní vrátí na další řádek kódu, než se vrátí na štítek „Macro2“. Nyní zvýrazní „GoSub Macro3“.

Nyní přejde na štítek „Macro3“, stiskněte klávesu F8.

Nyní bude proveden třetí úkol štítku.

Nyní klikněte na OK, zvýrazní se prohlášení „Návrat“.

Nyní stisknutí klávesy F8 ještě jednou přeskočí zpět na řádek kódu „Exit Sub“.

Ne, opustí podprogram. Je nutné přidat slovo „Exit Sub“, jinak dojde k chybě.

Příklad č. 2

Nyní se podívejte na další příklad použití příkazu GoSub Return.

Kód:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Prompt: = "Sem zadejte číslo", Název: = "Číslo divize") Pokud Num> 10 Pak GoSub Division Jinak MsgBox "Číslo je menší než 10" Konec Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub 

Tento kód vás požádá o zadání čísla, které je> 10, pokud je číslo> 10, provede úkol vydělit jej 5 (Název štítku je „Rozdělení“), jinak zobrazí zprávu jako „Číslo je méně než 10 “.

Věci k zapamatování

  • Název štítku by měl být stejný v příkazu GoSub a Return a v názvu štítku návratu by měl následovat dvojtečka (:).
  • Po provedení všech návratových příkazů vždy použijte Exit Sub ve VBA, abyste se vyhnuli chybové zprávě.