In VBA, per terminare l'esecuzione di TUTTI i codici utilizzare il Fine comando.
1 | Fine |
Quando l'esecuzione del codice arriva a Fine, terminerà immediatamente l'esecuzione e lascerà il programma.
Se vuoi imparare come uscire da un Sub in caso di errore, fai clic su questo link: VBA On Error Exit Sub
Se vuoi imparare come uscire da un sottotitolo o da una funzione, fai clic su questo link: VBA Esci da un sottotitolo o da una funzione
Esci da tutto il codice in VBA
Vedrai nell'esempio cosa succede quando usiamo il Fine comando in VBA. Abbiamo creato un sottotitolo EndSub, che ha il Fine comando all'interno. Questo Sub è chiamato da CallEndSub. Ecco il codice:
123456789101112131415161718 | Privato Sub EndSub()Dim i As IntegerPer i = da 1 a 10Se i = 5 AlloraMsgBox "Il valore di i è " & iFineFinisci seAvanti ioFine sottotitoloChiamata secondaria privataEndSub()Chiama EndSubMsgBox "End Sub"Fine sottotitolo |
Nel EndSub, inseriamo prima il ciclo For se il valore di i è inferiore a 10:
123 | Per i = da 1 a 10Avanti io |
Successivamente controlliamo se il valore di i è uguale a 5, utilizzando il comando If. Se il valore è 5, restituiamo la finestra di messaggio con il valore di i e usiamo il comando Fine.
1234567 | Se i = 5 AlloraMsgBox "Il valore di i è " & iFineFinisci se |
Se la condizione non è soddisfatta, la seguente istruzione aumenta i di 1 ed entra nuovamente nel ciclo For:
1 | Avanti io |
Nel CallEndSub, chiamiamo prima il Sub EndSub:
1 | Chiama EndSub |
Dopodiché restituiamo la casella del messaggio:
1 | MsgBox "End Sub" |
Se esegui il CallEndSub, chiamerà prima il EndSub. Se esegui questo codice in modalità debug, vedrai che passerà attraverso il ciclo 5 volte. Nel 5ns iterazione, il valore della variabile i diventa 5 e il codice entra nel corpo If. Ora il MsgBox “Il valore di i è ” & i viene eseguito e Fine dopo di che:
Immagine 1. Fine VBA
Come puoi vedere, l'esecuzione del codice viene interrotta subito dopo il Fine comando, quindi il MsgBox “End Sub” non viene mai eseguito.