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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba_.png.webp)
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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__2.png.webp)
Zdaj še enkrat pritisnite tipko F8, da se premaknete na naslednjo vrstico.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__3.png.webp)
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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__4.png.webp)
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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba_.gif)
Kliknite ok okno za sporočilo, da se vrnete v okno za kodiranje.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__5.png.webp)
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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__6.png.webp)
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.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__7.png.webp)
Zdaj bomo dobili drugo nalogo podprocedure, ki prikazuje vrednost v polju za sporočila.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__2.gif)
Zdaj kliknite, v redu. Poudaril bo drugo izjavo "Vrnitev".
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__8.png.webp)
Zdaj, ko kliknete tipko F8, se vrne v naslednjo vrstico kode, preden se vrne na oznako »Macro2«. Zdaj bo označil »GoSub Macro3«.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__9.png.webp)
Zdaj bo šel na oznako "Macro3", pritisnite tipko F8.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__10.png.webp)
Zdaj se bo izvedla naloga tretje nalepke.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__3.gif)
Zdaj kliknite V redu. Poudarila bo izjavo »Vrnitev«.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__11.png.webp)
Zdaj še enkrat pritisnite tipko F8; skočil bo nazaj v vrstico kode "Exit Sub".
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__12.png.webp)
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”.
![](https://cdn.know-base.net/2170757/vba_return_how_to_use_gosub_return_statement_in_vba__4.gif)
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.