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. Na našem pracovišti to může 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 chyby „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ém postupu. 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 z 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?

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, spustíme kód po řádku stisknutím klávesy F8. Při prvním stisknutí klávesy F8 inicializuje spuštění makra.

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; spíše to funguje jinak.

Přeskočilo na štítek s názvem „Macro1“, 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 odpovídajícím způsobem přeskočilo na název příslušného štítku.

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

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

Nyní to zvýraznilo prohlášení „Návrat“. Pokud stisknete klávesu F8 ještě jednou, udělá to, že se „vrátí 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 s názvem „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 „go-to label s názvem 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í druhý příkaz „Návrat“.

Nyní po kliknutí na klávesu F8 se 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í prohlášení „Návrat“.

Nyní stiskněte klávesu F8 ještě jednou; přeskočí zpět na řádek 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á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ě.

Zajímavé články...