Vba: come uscire da sub in caso di errore


È possibile utilizzare l’istruzione Exit Sub in VBA per uscire da una procedura secondaria quando si verifica un errore.

Ecco un modo comune per utilizzare questa affermazione nella pratica:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

Questa particolare macro tenta di dividere ciascun valore nell’intervallo A1:A10 per il valore corrispondente nell’intervallo B1:B10 .

Se si verifica un errore (ad esempio, stiamo provando a dividere per zero), l’istruzione On Error GoTo dice a VBA di accedere a ErrorMessage , che dice di produrre una finestra di messaggio che informa l’utente che si è verificato un errore e di terminare la sottoprocedura utilizzando Exist Sub . dichiarazione.dichiarazione.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come esistere un sub in caso di errore in VBA

Supponiamo di avere il seguente elenco di valori nelle colonne A e B:

Supponiamo ora di creare la seguente macro per dividere ciascun valore nella colonna A per il valore corrispondente nella colonna B e visualizzare i risultati nella colonna C:

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

Quando eseguiamo questa macro, riceviamo il seguente errore:

Riceviamo questo errore perché nella quarta riga del foglio Excel abbiamo provato a dividere per zero.

Se vogliamo semplicemente uscire dalla sottoprocedura quando si verifica questo errore, possiamo utilizzare l’istruzione Exit Sub come segue:

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

Quando eseguiamo questa macro, la sottoprocedura risolve tutti i possibili problemi di divisione prima di incontrare un errore, quindi appare una finestra di messaggio che ci informa che si è verificato un errore e VBA esiste semplicemente nella sottoprocedura:

VBA sull'errore di output sotto

Nota : qui è possibile trovare la documentazione completa dell’istruzione Exit in VBA.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

Come creare cartelle utilizzando VBA
Come eliminare cartelle utilizzando VBA
Come eliminare file utilizzando VBA

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *