Retorn VBA | Com s'utilitza la declaració de devolució de GoSub a VBA?

Declaració de retorn Excel VBA

VBA és meravellós i és un estalvi de vida per a aquells que coneixen la sortida i la sortida de la codificació VBA; pot estalviar tones de temps al nostre lloc de treball. En els nostres articles anteriors, hem discutit moltes coses i conceptes sobre el retorn de VBA. Un d’aquests conceptes és la declaració GoSub Return. En aquest article, us presentarem aquests conceptes.

Què és l'extracte de devolució de GoSub?

La declaració "Go Sub" significa que anirà a la línia de codi indicada per l'etiqueta a través del nom i realitza un conjunt específic de la tasca fins que troba la declaració "Return".

Això és similar a la declaració del gestor d'errors "GoTo Label", però el que fa "GoSub Return" és que tornarà a la següent línia de codi en lloc de continuar amb el nom de l'etiqueta.

A continuació es mostra la sintaxi de la sentència VBA GoSub Return.

 GoSub [Nom de l'etiqueta]... .. Línia de codi[Nom de l’etiqueta]:... .. Línia de codi per realitzar la tasca

Sé que és difícil d’entendre llegint la sintaxi, però si utilitzeu l’exemple podeu entendre el concepte.

Abans d'anar a exemples, deixeu-me explicar algunes coses sobre aquesta afirmació.

  • La sentència GoSub crida a la subrutina de vba, que rep el nom d'una etiqueta dins de la mateixa rutina o funció.
  • Tant GoSub com Return haurien d’estar dins del mateix procediment, aquí no podem trucar a cap altra macro de subrutina.
  • Podeu introduir qualsevol nombre d’instruccions de retorn de GoSub.
  • Una declaració de retorn continuarà amb l'execució del codi des d'on l'havia deixat abans de saltar al subprocés indicat amb un nom d'etiqueta.

Com s'utilitza la declaració de devolució de GoSub a VBA?

Podeu descarregar aquesta plantilla Excel de VBA Return aquí: plantilla Excel de VBA Return

Exemple 1

Per entendre l’ús d’aquesta afirmació, mireu primer el codi següent, més endavant us explicaré el codi línia per línia.

Codi:

 Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Ara s'executa Macro1" Torna Macro2: MsgBox "Ara s'executa Macro2" Torna Macro3: MsgBox "S'executa Macro3" Torna End Sub 

Per entendre aquest codi, podeu executar el codi línia per línia prement la tecla F8. En prémer la tecla F8 per primera vegada, s'iniciarà l'execució de la macro.

Ara premeu la tecla F8 una vegada més per anar a la següent línia.

Tots sabem que la macro executarà el codi línia per línia, però si premeu la tecla F8 no passarà a la següent línia, sinó que funciona de manera diferent.

Ha saltat a l'etiqueta anomenada "Macro1", perquè a l'afirmació anterior "GoSub" hem indicat a la macro que vagi al nom de l'etiqueta de subprocediment "Macro1", de manera que ha saltat al nom de l'etiqueta respectiu.

Ara, prement la tecla F8, la macro excel executarà l'etiqueta "Macro1" de mostrar el resultat al quadre de missatges.

Feu clic a Ok del quadre de missatge per tornar a la finestra de codificació.

Ara ha ressaltat la declaració "Retorn" si premeu la tecla F8 una vegada més, el que farà és "Tornar enrere" a la línia de codi anterior abans de saltar al nom de l'etiqueta.

L'última vegada que va executar el codi "GoSub Macro1" i va realitzar la tasca de nom de l'etiqueta "Macro1", ja que hem esmentat la declaració "Retorn", torna a la següent línia de codi, és a dir,

"GoSub Macro2"

El que diu la declaració és "etiqueta d'accés anomenada Macro2". A continuació, per a l'etiqueta "Macro2", he esmentat un conjunt de tasques específiques.

Ara tindrem la segona tasca de subprocés de mostrar valor al quadre de missatges.

Ara feu clic a Ok, ressaltarà la segona declaració "Retorn".

Ara, en fer clic a la tecla F8, tornarà a la següent línia de codi abans de tornar a l'etiqueta "Macro2". Ara ressaltarà "GoSub Macro3".

Ara passarà a etiquetar "Macro3", premeu la tecla F8.

Ara s'executarà la tercera tasca d'etiquetatge.

Ara feu clic a D'acord, ressaltarà la declaració "Retorn".

En prémer la tecla F8 una vegada més, tornarà a saltar a la línia de codi "Exit Sub".

No, sortirà de la subrutina. Cal afegir la paraula "Exit Sub", en cas contrari, es produirà un error.

Exemple 2

Vegeu ara un exemple més d’utilitzar la sentència GoSub Return.

Codi:

 Sub Go_Sub_Return1 () Dim Num Quant Long = Application.InputBox (Prompt: = "Introduïu aquí el número", Title: = "Número de divisió") Si Num> 10, llavors GoSub Division Else MsgBox "El número és inferior a 10" Surt Subfinit Si surt de la subdivisió: MsgBox Num / 5 Retorn del subfin 

Aquest codi us demanarà que introduïu el número> 10, si el número és> 10, realitzarà la tasca de dividir-lo per 5 (el nom de l'etiqueta és "Divisió") o bé mostrarà el missatge com a "El nombre és inferior a 10".

Coses que cal recordar

  • El nom de l'etiqueta hauria de ser el mateix a la sentència GoSub i Return i, a la declaració de retorn, el nom de l'etiqueta hauria d'anar seguit de dos punts (:).
  • Utilitzeu sempre Exit Sub a VBA després de fer totes les declaracions de retorn per evitar el missatge d'error.