Pagbabalik ng VBA | Paano Gumamit ng GoSub Return Statement sa VBA?

Paglalahad ng Excel VBA na Pahayag

Ang VBA ay kahanga-hanga at isang tagapagligtas para sa mga nakakaalam ng sa loob at labas ng pag-coding ng VBA, maaari itong makatipid ng toneladang oras sa lugar ng trabaho. Sa aming mga naunang artikulo, tinalakay namin ang maraming mga bagay at konsepto ng pagbabalik ng VBA. Ang isang tulad ng konsepto ay ang pahayag ng GoSub Return. Sa artikulong ito, ipakikilala namin sa iyo ang mga konseptong ito.

Ano ang GoSub Return Statement?

Ang pahayag na "Go Sub" ay nangangahulugang pupunta ito sa linya ng code na ipinahiwatig ng label sa pamamagitan ng pangalan at nagsasagawa ng isang tukoy na hanay ng gawain hanggang sa makita ang pahayag na "Bumalik".

Ito ay katulad ng pahayag ng handler ng error na "GoTo Label" ngunit kung ano ang ginagawa ng "GoSub Return" ay babalik ito sa susunod na linya ng code sa halip na magpatuloy mula sa pangalan ng label.

Nasa ibaba ang syntax ng pahayag ng VBA GoSub Return.

 GoSub [Pangalan ng Label]… .. Linya ng Code[Pangalan ng Label]:… .. Linya ng Code upang maisagawa ang gawain

Alam kong mahirap maintindihan mula sa pagbabasa ng syntax ngunit gamit ang halimbawa maaari mong maunawaan ang konsepto.

Bago ako pumunta sa mga halimbawa hayaan mo akong sabihin sa ilang mga bagay tungkol sa pahayag na ito.

  • Ang pahayag ng GoSub ay tumatawag sa subroutine sa vba na pinangalanan ng isang label sa loob ng parehong gawain o Pag-andar.
  • Ang parehong GoSub at Return ay dapat na nasa loob ng parehong pamamaraan, hindi kami maaaring tumawag sa isa pang subroutine macro dito.
  • Maaari mong ipakilala ang anumang bilang ng mga pahayag sa GoSub Return.
  • Ang isang pahayag sa pagbabalik ay magpapatuloy sa pagpapatupad ng code mula sa kung saan ito tumigil bago ito tumalon sa subprocedure na ipinahiwatig ng isang pangalan ng label.

Paano magagamit ang GoSub Return Statement sa VBA?

Maaari mong i-download ang VBA Return Excel Template dito - VBA Return Excel Template

Halimbawa # 1

Upang maunawaan ang paggamit ng pahayag na ito tingnan muna ang code sa ibaba, sa paglaon ay ipapaliwanag ko sa iyo ang linya ng code sa pamamagitan ng linya.

Code:

 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" Return End Sub 

Upang maunawaan ang code na ito, hinahayaan ang pagpapatakbo ng linya ng code sa pamamagitan ng linya sa pamamagitan ng pagpindot sa F8 key. Sa pagpindot sa F8 key sa unang pagkakataon sisimulan nito ang macro na tumatakbo.

Ngayon pindutin ang F8 key ng isa pang oras upang pumunta sa susunod na linya.

Alam nating lahat na patakbuhin ng macro ang linya ng code sa pamamagitan ng linya, ngunit kung pinindot mo ang F8 key hindi ito pupunta sa susunod na linya sa halip ay iba itong gumagana.

Tumalon ito sa tatak na pinangalanang "Macro1", ito ay dahil sa nakaraang pahayag na "GoSub" inatasan namin ang macro na pumunta sa pangalan ng label na subprocedure na "Macro1", kaya nang naaayon na tumalon ito sa kani-kanilang pangalan ng label.

Ngayon sa pamamagitan ng pagpindot sa F8 key excel macro ay isasagawa ang label na "Macro1" na gawain ng pagpapakita ng resulta sa kahon ng mensahe.

Mag-click sa Ok ng kahon ng mensahe upang bumalik sa window ng pag-coding.

Ngayon ay nai-highlight nito ang pahayag na "Bumalik" kung pinindot mo ang F8 key nang higit pa kung ano ang gagawin nito ay "Bumabalik" sa nakaraang linya ng code bago ito tumalon sa pangalan ng label.

Huling oras na ipinatupad nito ang code na "GoSub Macro1" at gumanap ito ng pangalan ng label na "Macro1" na gawain dahil nabanggit namin ang pahayag na "Bumalik" na bumalik ito sa susunod na linya ng code i.e.

"GoSub Macro2"

Ano ang sinasabi ng pahayag ay, "go-to label na pinangalanang Macro2". Sa ibaba para sa label na "Macro2", nabanggit ko ang isang tukoy na hanay ng gawain.

Makukuha natin ang pangalawang gawain ng subprocedure na nagpapakita ng halaga sa kahon ng mensahe.

Ngayon mag-click sa Ok i-highlight nito ang pangalawang pahayag na "Return".

Ngayon sa pag-click sa F8 key, babalik ito sa susunod na linya ng code bago ito bumalik sa label na "Macro2". Ngayon ay i-highlight nito ang "GoSub Macro3".

Ngayon ay pupunta ito sa label na "Macro3", pindutin ang F8 key.

Ngayon ang pangatlong gawain sa label ay papatayin.

Ngayon mag-click sa OK, i-highlight nito ang pahayag na "Bumalik".

Ngayon, ang pagpindot sa F8 key nang higit pa ay babalik ito sa linya ng code na "Exit Sub".

Hindi, lalabas ito sa subroutine. Kinakailangan na idagdag ang salitang "Exit Sub" kung hindi man makakasagupa ito ng isang error.

Halimbawa # 2

Tingnan ngayon ang isa pang halimbawa ng paggamit ng pahayag sa GoSub Return.

Code:

 Sub Go_Sub_Return1 () Dim Num Bilang Mahabang Num = Application.InputBox (Prompt: = "Mangyaring ipasok ang numero dito", Pamagat: = "Numero ng Dibisyon") Kung Num> 10 Kung gayon Ang Numero ng GoSub na Iba Pa MsgBox "Ang bilang ay mas mababa sa 10" Exit Sub End Kung Lumabas sa Sub Division: MsgBox Num / 5 Return End Sub 

Hihilingin sa iyo ng code na ito na ipasok ang numero na> 10, kung ang numero ay> 10 pagkatapos ay isasagawa nito ang gawain na hatiin ito sa 5 (Ang Pangalan ng Label ay "Dibisyon") o kung hindi ay ipapakita nito ang mensahe bilang "Ang bilang ay mas mababa sa 10".

Bagay na dapat alalahanin

  • Ang pangalan ng tatak ay dapat na pareho sa GoSub at Return statement at sa return statement label na pangalan ay dapat na sundan ng isang colon (:).
  • Palaging gamitin ang Exit Sub sa VBA matapos ang lahat ng mga pahayag sa pagbabalik ay tapos na upang maiwasan ang mensahe ng error.