Sous-fonction ou fonction de sortie VBA

En VBA, vous pouvez quitter un sous ou une fonction, en utilisant le Quitter le sous ou Fonction de sortie commandes.

1 Quitter le sous
1 Fonction de sortie

Lorsque l'exécution du code vient à Quitter le sous ou Fonction de sortie, il quittera une sous-fonction ou une fonction et continuera avec toute autre exécution de code.

Si vous voulez savoir comment quitter un Sub en cas d'erreur, cliquez sur ce lien : VBA On Error Exit Sub

Si vous voulez savoir comment terminer une exécution de code entier, cliquez sur ce lien : VBA End

Quitter un sous en VBA

Vous verrez sur l'exemple ce qui se passe quand on utilise le Quitter le sous commande dans un Sub. Nous avons créé un sous QuitterSous, qui a le Quitter le sous commande à l'intérieur. Le sousAppelSortieSous appelle ce sous. Voici le code :

123456789101112131415161718 Sous-Sous-Exit Privé()Diminuer en tant qu'entierPour i = 1 à 10Si je = 5 AlorsQuitter le sousMsgBox "La valeur de i est" & iFin siEnsuite jeFin du sous-marinSous-appel privéExitSub()Appeler ExitSubMsgBox "Quitter le sous-marin"Fin du sous-marin

Dans le QuitterSous, nous entrons d'abord dans la boucle For si la valeur de i est inférieure à 10 :

123 Pour i = 1 à 10Ensuite je

Après cela, nous vérifions si la valeur de i est égale à 5, en utilisant la commande If. Si la valeur est 5, nous voulons quitter le Sub et renvoyer la boîte de message avec la valeur i :

1234 Si je = 5 AlorsQuitter le sousMsgBox "La valeur de i est" & iFin si

Si la condition n'est pas remplie, l'instruction suivante augmente i de 1 et entre à nouveau dans la boucle For :

1 Ensuite je

Dans le AppelSortieSous, nous appelons d'abord le Sub QuitterSous:

1 Appeler ExitSub

Après cela, nous retournons la boîte de message :

1 MsgBox "Quitter le sous-marin"

Si vous exécutez le AppelSortieSous, il appellera d'abord le QuitterSous. Si vous exécutez ce code en mode débogage, vous verrez qu'il parcourra la boucle 5 fois. Dans le 5e itération, la valeur de la variable i devient 5 et le code entre dans le corps If. Maintenant le sous QuitterSous est sorti et retourné au AppelSortieSous. La ligne suivante est MsgBox « Quitter le sous-marin »:

Comme vous pouvez le voir, le QuitterSous est quitté juste après Quitter le sous commande, donc le MsgBox "La valeur de i est" & i ne sera jamais exécuté.

Quitter une fonction en VBA

Quitter une fonction dans VBA est similaire à quitter un Sub, juste la commande est Fonction de sortie. Dans l'exemple, nous avons créé le ExitFunc qui renvoie un entier. le sous Fonction d'appelSortie appelle cette fonction. Voici le code :

1234567891011121314151617181920 Fonction privée ExitFunc() en tant qu'entierDiminuer en tant qu'entierPour i = 1 à 10Si je = 5 AlorsExitFunc = iFonction de sortieFin siEnsuite jeFonction de finPrivate Sub CallExitFunction()Dim intFunc en tant qu'entierintFunc = ExitFunction()MsgBox "La valeur de intFunc est " & intFuncFin du sous-marin

Dans le ExitFunc, nous entrons d'abord dans la boucle For si la valeur de i est inférieure à 10 :

123 Pour i = 1 à 10Ensuite je

Après cela, nous vérifions si la valeur de i est égale à 5, en utilisant la commande If. Si la valeur est 5, nous attribuons la valeur de i au résultat de la fonction et sortons de la fonction :

1234 Si je = 5 AlorsExitFunc = iFonction de sortieFin si

Si la condition n'est pas remplie, l'instruction suivante augmente i de 1 et entre à nouveau dans la boucle For :

1 Ensuite je

Dans le Fonction d'appelSortie, on appelle d'abord la fonction ExitFunc: Pour ce faire, nous devons déclarer la variable intFunc tapez entier et attribuez le résultat de la ExitFunc fonction :

123 Dim intFunc en tant qu'entierintFunc = ExitFunction()

Après cela, nous retournons la boîte de message avec la valeur de intFunc:

1 MsgBox "La valeur de intFunc est " & intFunc

Si vous exécutez le Fonction d'appelSortie, il appellera d'abord la fonction ExitFunc. Si vous exécutez ce code en mode débogage, vous verrez qu'il parcourra la boucle 5 fois. Dans le 5e itération, la valeur de la variable i devient 5 et le code entre dans le corps If. Maintenant, la valeur du ExitFunc devient i et la fonction est quittée et renvoyée au Fonction d'appelSortie. La ligne suivante est MsgBox "La valeur de intFunc est " & intFunc:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave