Vrnitev VBA - Kako uporabiti izjavo o vrnitvi GoSub v VBA?

Izjava o vrnitvi programa Excel VBA

VBA je čudovit in rešilni za tiste, ki poznajo kodiranje in vnašanje koda VBA. Na našem delovnem mestu lahko prihranite tone časa. V naših prejšnjih člankih smo razpravljali o mnogih stvareh in konceptih vračanja VBA. Tak koncept je izjava GoSub Return. V tem članku vam bomo predstavili te koncepte.

Kaj je GoSub-ova izjava o vrnitvi?

Izjava "Pojdi na sub" pomeni, da bo šla v vrstico kode, označeno z nalepko skozi ime, in bo izvedla določen nabor naloge, dokler ne najde izjave "Vrni se".

To je podobno izjavi upravljalca napak »GoTo Label«, toda »GoSub Return« se vrne nazaj v naslednjo vrstico kode in ne nadaljuje z imenom oznake.

Spodaj je sintaksa stavka VBA GoSub Return.

GoSub (ime oznake)  … vrstica kode  (ime oznake):  … vrstica kode za izvedbo naloge

Vem, da je iz branja skladnje težko razumeti, toda na primeru boste morda lahko razumeli koncept.

Preden grem na primere, naj povem nekaj stvari o tej izjavi.

  • Stavek GoSub pokliče podprogram v VBA, ki ga poimenuje oznaka znotraj iste rutine ali funkcije.
  • GoSub in Return morata biti v istem postopku. Tu ne moremo priklicati drugega makronaredbe.
  • Vnesete lahko poljubno število izjav GoSub Return.
  • Stavek return bo nadaljeval izvajanje kode od mesta, kjer se je končala, preden je skočila na podproces, označen z imenom nalepke.

Kako uporabiti izjavo o vrnitvi GoSub v VBA?

Primer # 1

Če želite razumeti uporabo te izjave, najprej poglejte spodnjo kodo. Kasneje vam bom razložil kodo po vrsticah.

Koda:

Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Now running Macro1" Return Macro2: MsgBox "Now running Macro2" Return Macro3: MsgBox "Now running Macro3

Da bi razumeli to kodo, zaženimo kodo po vrsticah s pritiskom na tipko F8. Ko prvič pritisnete tipko F8, bo sprožil zagon makra.

Zdaj še enkrat pritisnite tipko F8, da se premaknete na naslednjo vrstico.

Vsi vemo, da bo makro vodil kodo vrstico za vrstico, vendar če pritisnete tipko F8, ne bo šel v naslednjo vrstico; bolje rečeno deluje drugače.

Preskočil je na oznako, imenovano »Macro1«, to je zato, ker smo v prejšnji izjavi »GoSub« makroju naročili, naj preide na ime oznake podprocedure »Macro1«, zato je preskočil na ustrezno ime oznake.

Zdaj bo makro Excel s pritiskom na tipko F8 izvedel nalogo »Macro1«, da bo prikazal rezultat v polju za sporočila.

Kliknite ok okno za sporočilo, da se vrnete v okno za kodiranje.

Zdaj je poudaril izjavo "Vrnitev". Če še enkrat pritisnete tipko F8, se bo vrnila v prejšnjo vrstico kode, preden je preskočila na ime etikete.

Nazadnje je izvedel kodo »GoSub Macro1« in opravil nalogo z imenom oznake »Macro1«. Ker smo omenili stavek "Return", se vrne v naslednjo vrstico kode, tj

»GoSub Macro2«

Izjava pravi, da gre za nalepko z imenom Macro2. V nadaljevanju za oznako »Macro2« sem omenil določen nabor nalog.

Zdaj bomo dobili drugo nalogo podprocedure, ki prikazuje vrednost v polju za sporočila.

Zdaj kliknite, v redu. Poudaril bo drugo izjavo "Vrnitev".

Zdaj, ko kliknete tipko F8, se vrne v naslednjo vrstico kode, preden se vrne na oznako »Macro2«. Zdaj bo označil »GoSub Macro3«.

Zdaj bo šel na oznako "Macro3", pritisnite tipko F8.

Zdaj se bo izvedla naloga tretje nalepke.

Zdaj kliknite V redu. Poudarila bo izjavo »Vrnitev«.

Zdaj še enkrat pritisnite tipko F8; skočil bo nazaj v vrstico kode "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

  • Ime oznake mora biti enako v izjavi GoSub in Return, v stavku return pa mora biti ime oznake dvopičje (:).
  • Vedno uporabite Exit Sub v VBA, potem ko so narejeni vsi povratni stavki, da se izognete sporočilu o napaki.

Zanimive Članki...