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

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 ülesande konkreetset komplekti, kuni leiab avalduse “Return”.

See sarnaneb veakäitleja avaldusega „GoTo Label”, kuid mida „GoSub Return” teeb, on see, et see naaseb koodi järgmisele reale, 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 on raske mõista, kuid näite abil saate mõistest aru.

Enne kui lähen näidete juurde, lubage mul selle väite kohta mõned asjad rääkida.

  • GoSubi lause kutsub alamprogrammi vba-s, mille nimi on sama rutiini või funktsiooni sildiga.
  • Nii GoSub kui ka Return peaksid olema samas protseduuris, me ei saa siin teist alamprogrammi makrot kutsuda.
  • 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?

Selle VBA Return Exceli malli saate alla laadida siit - VBA Return Exceli mall

Näide 1

Selle väite 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 saate käivitada koodi rea kaupa, vajutades klahvi F8. Esmakordsel klahvi F8 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”, seda seetõttu, et eelmises avalduses “GoSub” oleme käskinud makrol 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 nuppu OK.

Nüüd on see esile tõstnud lause "Return", kui vajutate klahvi F8 veel kord, mida see teeb, see on "Return Back" eelmisele koodireale, enne kui see hüppas sildi nimele.

Viimati käivitas see koodi “GoSub Macro1” ja tegi sildi nime “Macro1” ülesande, kuna oleme maininud lauset “Return”, see on tagasi järgmise koodirea juurde, st

„GoSub Macro2”

Mis on avalduses öeldud, on "go-to silt nimega Macro2". Allpool sildi “Macro2” jaoks olen maininud konkreetset ülesandekomplekti.

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

Nüüd klõpsake nuppu Ok, see tõstab esile teise "Return" 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 tõstab esile lause "Return".

Nüüd klahvi F8 veel üks kord vajutades hüpatakse tagasi koodireale "Exit Sub".

Ei, see väljub alamprogrammist. On vaja lisada sõna “Exit Sub”, vastasel juhul ilmneb selles tõrge.

Näide 2

Nüüd vaadake veel ühte näidet GoSub Returni kasutamise kohta.

Kood:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Viip: = "Palun sisestage number siia", Pealkiri: = "Divsioni number") Kui Num> 10, siis ka GoSub'i divisjoni muu MsgBox "arv on väiksem kui 10" Exit Alamlõpp, kui väljute alajaoskonnast: MsgBox Num / 5 Tagastage lõpu alam 

See kood palub teil sisestada numbri, mis on> 10, kui number on> 10, täidab see ülesande jagada see 5-ga (sildi nimi on "Jagamine") või muidu kuvatakse see sõnumina "Number on alla 10 ”.

Asjad, mida meeles pidada

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