Ritorno 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 VBA GoSub Return.

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?

Puoi scaricare questo modello Excel di ritorno VBA qui - Modello Excel di ritorno VBA

Esempio 1

Per capire l'uso di questa affermazione, guarda prima il codice seguente, più tardi 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 il tasto F8 ancora una volta per passare alla riga successiva.

Sappiamo tutti che la macro eseguirà il codice riga per riga, ma se si preme il tasto F8 non si passerà alla riga successiva ma funzionerà 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 è saltata al nome dell'etichetta corrispondente.

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

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

Ora ha evidenziato l'istruzione "Return" se si preme il tasto F8 ancora una volta, ciò che farà è "Tornerà indietro" alla riga di codice precedente prima di saltare al nome dell'etichetta.

L'ultima volta che ha eseguito il codice "GoSub Macro1" e ha eseguito il nome dell'etichetta "Macro1" poiché abbiamo menzionato l'istruzione "Return", è tornato alla riga di codice successiva, ad es.

"GoSub Macro2"

Ciò 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 per evidenziare 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à all'etichetta "Macro3", premere il tasto F8.

Ora verrà eseguita la terza attività di etichetta.

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

Ora premendo il tasto F8 ancora una volta si salterà indietro alla riga di codice "Exit Sub".

No, uscirà dalla subroutine. È necessario aggiungere la parola “Exit Sub” altrimenti si verificherà un errore.

Esempio n. 2

Ora dai un'occhiata a un altro esempio di utilizzo dell'istruzione GoSub Return.

Codice:

 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 

Questo codice ti chiederà di inserire il numero che è> 10, se il numero è> 10 allora eseguirà il compito di dividerlo per 5 (il nome dell'etichetta è "Divisione") oppure mostrerà il messaggio come "Il numero è meno di 10".

Cose da ricordare

  • 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 tutte le istruzioni di ritorno sono state eseguite per evitare il messaggio di errore.