Ritorno VBA - Come utilizzare l'istruzione di ritorno GoSub in VBA?

Dichiarazione di restituzione VBA di Excel

VBA è meraviglioso e salvavita per coloro che conoscono l'interno e l'esterno della codifica VBA. Può far risparmiare un sacco di tempo sul nostro posto di lavoro. Nei nostri articoli precedenti, abbiamo discusso molte cose e concetti del ritorno VBA. Uno di questi concetti è l'istruzione GoSub Return. In questo articolo ti presenteremo questi concetti.

Che cos'è la dichiarazione di reso GoSub?

L'istruzione "Go Sub" significa che andrà alla riga di codice indicata dall'etichetta attraverso il nome ed esegue una serie specifica di attività finché non trova l'istruzione "Return".

È simile all'istruzione del gestore degli errori "GoTo Label", ma ciò che "GoSub Return" fa è che tornerà alla riga di codice successiva anziché continuare dal nome dell'etichetta.

Di seguito è riportata la sintassi dell'istruzione Return GoSub VBA.

GoSub (nome etichetta)  … Riga di codice  (nome etichetta):  … Riga di codice per eseguire l'attività

So che è difficile capire leggendo la sintassi, ma usando l'esempio potresti essere in grado di capire il concetto.

Prima di passare agli esempi, lasciatemi dire alcune cose su questa affermazione.

  • L'istruzione GoSub chiama la subroutine in VBA, che è denominata da un'etichetta all'interno della stessa routine o funzione.
  • Sia GoSub che Return dovrebbero essere all'interno della stessa procedura. Non possiamo chiamare un'altra macro di subroutine qui.
  • È possibile introdurre un numero qualsiasi di istruzioni GoSub Return.
  • Un'istruzione return continuerà l'esecuzione del codice dal punto in cui era stata interrotta prima di passare alla sottoprocedura indicata dal nome di un'etichetta.

Come utilizzare l'istruzione di ritorno GoSub in VBA?

Esempio 1

Per comprendere l'utilizzo di questa affermazione, guarda prima il codice seguente. Più avanti ti spiegherò il codice riga per riga.

Codice:

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

Per comprendere questo codice, eseguiamo il codice riga per riga premendo il tasto F8. Alla prima pressione del tasto F8, inizierà l'esecuzione della macro.

Ora premi ancora una volta il tasto F8 per passare alla riga successiva.

Sappiamo tutti che la macro eseguirà il codice riga per riga, ma se premi il tasto F8, non andrà alla riga successiva; piuttosto, funziona in modo diverso.

È saltato all'etichetta denominata "Macro1" questo perché nell'istruzione precedente "GoSub" abbiamo indicato alla macro di andare al nome dell'etichetta della sottoprocedura "Macro1", quindi di conseguenza, è passato al nome dell'etichetta corrispondente.

Ora premendo il tasto F8, la macro excel eseguirà l'etichetta "Macro1" per mostrare il risultato nella finestra del messaggio.

Fare clic su Ok della finestra del messaggio per tornare alla finestra di codifica.

Ora aveva evidenziato l'affermazione "Return". Se premi ancora una volta il tasto F8, ciò che farà è "Tornerà indietro" alla riga di codice precedente prima di saltare al nome dell'etichetta.

L'ultima volta ha eseguito il codice "GoSub Macro1" e ha eseguito l'attività con il nome dell'etichetta "Macro1". Poiché abbiamo menzionato l'istruzione "Return", si torna alla riga di codice successiva, ad es

"GoSub Macro2"

Quello che dice la dichiarazione è "etichetta di riferimento denominata Macro2". Di seguito per l'etichetta "Macro2", ho menzionato un insieme specifico di attività.

Ora avremo la seconda attività di sottoprocedura di mostrare il valore nella finestra di messaggio.

Ora fai clic su, Ok. Evidenzierà la seconda istruzione "Return".

Ora, facendo clic sul tasto F8, tornerà alla riga di codice successiva prima di tornare all'etichetta "Macro2". Ora evidenzierà "GoSub Macro3".

Ora andrà alla label “Macro3”, premere il tasto F8.

Ora verrà eseguita la terza attività di etichetta.

Ora fai clic su, OK. Evidenzierà la dichiarazione "Return".

Ora premi ancora una volta il tasto F8; tornerà alla riga di codice "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

  • Il nome dell'etichetta dovrebbe essere lo stesso nell'istruzione GoSub e Return e nell'istruzione return il nome dell'etichetta dovrebbe essere seguito da due punti (:).
  • Utilizzare sempre Exit Sub in VBA dopo che sono state eseguite tutte le istruzioni di ritorno per evitare il messaggio di errore.

Articoli interessanti...