VBA povratak - Kako koristiti GoSub izjavu o povratu u VBA?

Izjava o povratku za Excel VBA

VBA je prekrasan i spas za one koji poznaju ulazno i ​​vanjsko kodiranje VBA. Na našem radnom mjestu možemo uštedjeti tone vremena. U našim ranijim člancima raspravljali smo o mnogim stvarima i konceptima povratka VBA. Jedan od takvih koncepata je izjava GoSub Return. U ovom ćemo vas članku upoznati s ovim konceptima.

Što je GoSub izjava o povratu?

Izjava "Go Sub" znači da će ići do retka koda označenog naljepnicom kroz ime i izvršava određeni skup zadataka dok ne pronađe izjavu "Povratak".

Ovo je slično izjavi obrađivača pogrešaka "GoTo Label", ali ono što "GoSub Return" radi je da će se vratiti na sljedeći redak koda, a ne nastaviti s imena oznake.

Ispod je sintaksa izraza VBA GoSub Return.

GoSub (naziv oznake)  … linija koda  (naziv oznake):  … linija koda za izvršavanje zadatka

Znam da je teško razumjeti čitajući sintaksu, ali koristeći primjer, možda ćete moći razumjeti koncept.

Prije nego što prijeđem na primjere, ispričat ću nekoliko stvari o ovoj izjavi.

  • GoSub naredba poziva potprogram u VBA, koji se imenuje oznakom unutar iste rutine ili funkcije.
  • GoSub i Return trebaju biti u okviru istog postupka. Ovdje ne možemo nazvati drugu makroprogram.
  • Možete uvesti bilo koji broj GoSub Return izraza.
  • Izjava o povratku nastavit će izvršavanje koda od mjesta gdje je stao prije nego što je skočio na potproceduru označenu nazivom naljepnice.

Kako koristiti GoSub izjavu o povratu u VBA?

Primjer # 1

Da biste razumjeli upotrebu ove izjave, prvo pogledajte donji kod. Kasnije ću vam objasniti kôd redak po redak.

Kodirati:

Sub Go_Sub_Return () GoSub Macro1 'Naziv oznake1 GoSub Macro2' Naziv oznake2 GoSub Macro3 'Oznaka Name3 Izlaz iz Sub Macro1: MsgBox "Sada se izvodi Macro1" Povratak Macro2: MsgBox "Sada se izvodi Macro2" Povratak Macro3: MsgBox "Sad se izvodi Macro3

Da bismo razumjeli ovaj kod, pokrenimo kôd redak po redak pritiskom na tipku F8. Nakon prvog pritiska tipke F8, pokrenut će pokretanje makronaredbe.

Sada pritisnite još jednom tipku F8 da biste prešli na sljedeći redak.

Svi znamo da će makronaredba pokretati kôd redak po redak, ali ako pritisnete tipku F8, neće ići na sljedeći redak; nego djeluje drugačije.

Skočio je na oznaku nazvanu "Macro1", jer smo u prethodnoj izjavi "GoSub" naredili makronaredbi da pređe na naziv oznake potprocedura "Macro1", pa je prema tome skočio na odgovarajuće ime naljepnice.

Sada će pritiskom na tipku F8 excel makronaredba izvršiti zadatak oznake "Macro1" prikazivanja rezultata u okviru za poruke.

Kliknite na Ok okvira za poruku da biste se vratili u prozor za kodiranje.

Sada je istaknuo izjavu "Povratak". Ako još jednom pritisnete tipku F8, ono što će učiniti jest da će se vratiti natrag na prethodni redak koda prije nego što skoči na naziv naljepnice.

Zadnji put je izvršio kôd "GoSub Macro1" i izvršio je zadatak oznake "Macro1". Budući da smo spomenuli izjavu "Return", ona se vraća na sljedeći redak koda, tj

"GoSub Macro2"

Izjava kaže da je "idite na oznaku pod nazivom Macro2". U nastavku za oznaku "Macro2" spomenuo sam određeni skup zadataka.

Sada ćemo dobiti drugi zadatak potprocedure prikazivanja vrijednosti u okviru za poruku.

Sada kliknite, u redu. Istaknut će drugu izjavu "Povratak".

Nakon klika na tipku F8 vratit će se na sljedeći redak koda prije nego što se vrati na oznaku "Macro2". Sada će istaknuti "GoSub Macro3".

Sada će otići na oznaku "Macro3", pritisnite tipku F8.

Sada će se izvršiti zadatak treće oznake.

Sada kliknite, u redu. Istaknut će izjavu "Povratak".

Sada pritisnite tipku F8 još jednom; skočit će natrag na liniju koda "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

  • Naziv oznake trebao bi biti isti u GoSub-u i naredbi Return, a u naredbi return-a naziv oznake trebao bi slijediti dvotačka (:).
  • Uvijek koristite Exit Sub u VBA nakon izrade svih naredbi za povratak kako biste izbjegli poruku o pogrešci.

Zanimljivi članci...