Retour VBA

Déclaration de retour Excel VBA

VBA est merveilleux et une bouée de sauvetage pour ceux qui connaissent le codage VBA et en dehors, il peut gagner beaucoup de temps sur notre lieu de travail. Dans nos articles précédents, nous avons discuté de nombreux éléments et concepts du retour VBA. L'instruction GoSub Return est l'un de ces concepts. Dans cet article, nous allons vous présenter ces concepts.

Qu'est-ce que la déclaration de retour GoSub?

L'instruction «Go Sub» signifie qu'il ira à la ligne de code indiquée par l'étiquette à travers le nom et exécute un ensemble spécifique de la tâche jusqu'à ce qu'il trouve l'instruction «Return».

Ceci est similaire à l'instruction du gestionnaire d'erreur «GoTo Label», mais ce que «GoSub Return» fait, c'est qu'il retournera à la ligne de code suivante plutôt que de continuer à partir du nom de l'étiquette.

Vous trouverez ci-dessous la syntaxe de l'instruction VBA GoSub Return.

GoSub [Nom de l'étiquette] … .. Ligne de code [Nom de l'étiquette]: … .. Ligne de code pour effectuer la tâche

Je sais que c'est difficile à comprendre à la lecture de la syntaxe, mais en utilisant l'exemple, vous pourrez peut-être comprendre le concept.

Avant de passer aux exemples, permettez-moi de dire quelques choses à propos de cette déclaration.

  • L'instruction GoSub appelle le sous-programme dans vba qui est nommé par une étiquette dans la même routine ou fonction.
  • GoSub et Return doivent être dans la même procédure, nous ne pouvons pas appeler une autre macro de sous-programme ici.
  • Vous pouvez introduire n'importe quel nombre d'instructions GoSub Return.
  • Une instruction return continuera l'exécution du code là où elle s'était arrêtée avant de sauter à la sous-procédure indiquée par un nom d'étiquette.

Comment utiliser la déclaration de retour GoSub dans VBA?

Vous pouvez télécharger ce modèle Excel de retour VBA ici - Modèle Excel de retour VBA

Exemple 1

Pour comprendre l'utilisation de cette déclaration, regardez d'abord le code ci-dessous, plus tard, je vous expliquerai le code ligne par ligne.

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 

Pour comprendre ce code, exécutons le code ligne par ligne en appuyant sur la touche F8. En appuyant sur la touche F8 pour la première fois, il lancera l'exécution de la macro.

Appuyez maintenant une fois de plus sur la touche F8 pour passer à la ligne suivante.

Nous savons tous que la macro exécutera le code ligne par ligne, mais si vous appuyez sur la touche F8, cela ne passera pas à la ligne suivante, mais cela fonctionne différemment.

Il a sauté à l'étiquette nommée «Macro1», c'est parce que dans l'instruction précédente «GoSub» nous avons demandé à la macro d'aller au nom d'étiquette de sous-procédure «Macro1», donc en conséquence il a sauté au nom d'étiquette respectif.

Maintenant, en appuyant sur la touche F8, la macro Excel exécutera la tâche d'étiquette «Macro1» pour afficher le résultat dans la boîte de message.

Cliquez sur Ok de la boîte de message pour revenir à la fenêtre de codage.

Maintenant, il a mis en surbrillance l'instruction «Retour» si vous appuyez une fois de plus sur la touche F8, ce qu'il fera, c'est qu'il «retournera» à la ligne de code précédente avant de sauter au nom de l'étiquette.

La dernière fois qu'il a exécuté le code «GoSub Macro1» et qu'il a effectué la tâche de nom d'étiquette «Macro1» depuis que nous avons mentionné l'instruction «Return», il est de retour à la ligne de code suivante.

«GoSub Macro2»

Ce que dit la déclaration, c'est «l'étiquette de référence nommée Macro2». Dans ce qui suit pour l'étiquette «Macro2», j'ai mentionné un ensemble spécifique de tâches.

Nous allons maintenant obtenir la deuxième tâche de sous-procédure consistant à afficher la valeur dans la boîte de message.

Cliquez maintenant sur Ok, cela mettra en évidence la deuxième déclaration «Retour».

Maintenant, en cliquant sur la touche F8, il retournera à la ligne de code suivante avant de revenir à l'étiquette «Macro2». Maintenant, il mettra en évidence «GoSub Macro3».

Maintenant, il ira à l'étiquette «Macro3», appuyez sur la touche F8.

La troisième tâche d'étiquette sera maintenant exécutée.

Cliquez maintenant sur OK, il mettra en évidence la déclaration «Retour».

Appuyez à nouveau sur la touche F8 pour revenir à la ligne de code «Exit Sub».

Non, il quittera le sous-programme. Il est nécessaire d'ajouter le mot «Exit Sub» sinon il rencontrera une erreur.

Exemple # 2

Jetez maintenant un œil à un autre exemple d'utilisation de l'instruction GoSub Return.

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 

Ce code vous demandera d'entrer le nombre qui est> 10, si le nombre est> 10 alors il effectuera la tâche de le diviser par 5 (le nom de l'étiquette est "Division") ou bien il affichera le message comme "Le numéro est moins de 10".

Choses à retenir

  • Le nom de l'étiquette doit être le même dans l'instruction GoSub et Return et dans l'instruction return, le nom de l'étiquette doit être suivi de deux points (:).
  • Utilisez toujours Exit Sub dans VBA une fois toutes les instructions de retour effectuées pour éviter le message d'erreur.