VBA tagasipöördumine - Kuidas kasutada VBA-s GoSubi tagasipöördumisavaldust?

Lang L: none (table-of-contents)

Exceli VBA tagastamise avaldus

VBA on suurepärane ja elupäästja neile, kes teavad VBA kodeerimisest sisse ja välja. See võib meie töökohal säästa palju aega. Oma varasemates artiklites oleme arutanud paljusid asju ja VBA tootluse mõisteid. Üks selline mõiste on GoSub Return-lause. Selles artiklis tutvustame teile neid mõisteid.

Mis on GoSubi tagastamisavaldus?

Avaldus "Go Sub" tähendab, et see läheb nime kaudu sildiga näidatud koodireale ja täidab konkreetse ülesande komplekti, kuni leiab avalduse "Return".

See sarnaneb veakäitleja avaldusega „GoTo Label”, kuid mida „GoSub Return” teeb, on see, et see naaseb pigem järgmisele koodireale, selle asemel et jätkata sildi nimest.

Allpool on lause VBA GoSub Return süntaks.

GoSub (Label Name)  … koodirida  (Label Name):  … koodirida ülesandeid täitma

Ma tean, et süntaksit lugedes on sellest raske aru saada, kuid näite abil võite mõistest aru saada.

Enne kui näiteid tutvustan, lubage mul selle väite kohta mõned asjad rääkida.

  • GoSubi avaldus kutsub VBA-s alamprogrammi, mille nimi on sama rutiini või funktsiooni sees olev silt.
  • Nii GoSub kui ka Return peaksid olema samas protseduuris. Me ei saa siin nimetada teist alamprogrammi makrot.
  • Saate tutvustada suvalist arvu GoSub Returni avaldusi.
  • Return-lause jätkab koodi täitmist sealt, kus see pooleli jäi, enne kui hüppas sildi nimega näidatud alamprotseduuri.

Kuidas kasutada VBA-s GoSubi tagasipöördumisavaldust?

Näide 1

Selle lause kasutamise mõistmiseks vaadake kõigepealt allolevat koodi. Hiljem selgitan teile koodi rea kaupa.

Kood:

Sub Go_Sub_Return () GoSub Macro1 'Sildi nimi1 GoSub Macro2' Sildi nimi2 GoSub Macro3 'Sildi nimi3 Exit Sub Macro1: MsgBox "Praegu töötab Macro1" Return Macro2: MsgBox "Nüüd töötab Macro2" Return Macro3: MsgBox "Nüüd töötab Macro3" Return Sub

Selle koodi mõistmiseks käivitame koodi rea kaupa, vajutades klahvi F8. F8-klahvi esmakordsel vajutamisel käivitatakse makro käitamine.

Järgmisele reale liikumiseks vajutage nüüd veel kord klahvi F8.

Me kõik teame, et makro käivitab koodi rea kaupa, kuid kui vajutate klahvi F8, ei lähe see järgmisele reale; pigem töötab see teisiti.

See on hüpanud sildi nimega “Macro1”, sest seetõttu oleme eelmises avalduses “GoSub” andnud makrole käsu minna alamprotseduuri sildi nimele “Macro1”, seega on see hüpanud vastava sildi nimele.

Nüüd vajutades klahvi F8, täidab exceli makro sildi „Macro1” ülesande näidata tulemust teatekastis.

Kodeerimisaknasse naasmiseks klõpsake sõnumikasti OK.

Nüüd oli see rõhutanud tagasituleku avaldust. Kui vajutate klahvi F8 veel üks kord, siis see "tagasi naaseb" eelmisele koodireale, enne kui hüppab sildi nimele.

Viimati täitis see koodi „GoSub Macro1” ja sildi nime „Macro1”. Kuna oleme maininud lauset “Return”, on see tagasi järgmise koodirea juurde

„GoSub Macro2”

Mis on avalduses öeldud, on "Macro2 nimeline silt". Allpool sildi “Macro2” jaoks olen maininud konkreetset ülesannete komplekti.

Nüüd saame kirjakastis väärtuse kuvamise teise alamprotseduuri ülesande.

Nüüd klõpsake nuppu OK. See toob esile teise tagasituleku avalduse.

Nüüd klõpsates klahvi F8, naaseb kood järgmisele reale, enne kui naaseb sildile “Macro2”. Nüüd tõstetakse esile “GoSub Macro3”.

Nüüd läheb see sildile “Macro3”, vajutage klahvi F8.

Nüüd täidetakse kolmas sildi ülesanne.

Nüüd klõpsake nuppu OK. See toob esile avalduse „Tagasi”.

Nüüd vajutage veel kord klahvi F8; see hüppab tagasi koodireale „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

  • Sildi nimi peaks olema GoSub ja Return lauses sama ning return lause sildi nimele peaks järgnema koolon (:).
  • Veateate vältimiseks kasutage VBA-s alati Exit Sub-i pärast kõigi tagastamislausete tegemist.

Huvitavad Artiklid...