În VBA, pentru a termina EXECUTAREA codului, utilizați fișierul Sfârșit comanda.
1 | Sfârșit |
Când vine executarea codului la Sfârșit, va termina imediat execuția și va părăsi programul.
Dacă doriți să aflați cum să ieșiți dintr-un Sub pe eroare, faceți clic pe acest link: VBA On Error Exit Sub
Dacă doriți să aflați cum să ieșiți dintr-un Sub sau Funcție, faceți clic pe acest link: VBA Exit Sub sau Function
Ieșiți din toate codurile din VBA
Veți vedea pe exemplu ce se întâmplă când folosim Sfârșit comandă în VBA. Am creat un Sub EndSub, care are Sfârșit comanda în interior. Acest Sub este apelat de la CallEndSub. Iată codul:
123456789101112131415161718 | Sub EndSub privat ()Dim i IntegerPentru i = 1 până la 10Dacă i = 5 AtunciMsgBox „Valoarea lui i este„ & iSfârșitEnd IfApoi euSfârșitul SubPrivate Sub CallEndSub ()Apelați EndSubMsgBox „End Sub”Sfârșitul Sub |
În EndSub, mai întâi introducem For Loop dacă valoarea lui i este mai mică de 10:
123 | Pentru i = 1 până la 10Apoi eu |
După aceea, verificăm dacă valoarea lui i este egală cu 5, folosind comanda If. Dacă valoarea este 5, returnăm caseta de mesaj cu valoarea i și folosim comanda Sfârșit.
1234567 | Dacă i = 5 AtunciMsgBox „Valoarea lui i este„ & iSfârșitEnd If |
Dacă condiția nu este îndeplinită, următoarea instrucțiune crește i cu 1 și intră din nou în bucla For:
1 | Apoi eu |
În CallEndSub, numim mai întâi Sub EndSub:
1 | Apelați EndSub |
După aceea returnăm caseta Mesaj:
1 | MsgBox „End Sub” |
Dacă rulați CallEndSub, va apela mai întâi EndSub. Dacă executați acest cod în modul de depanare, veți vedea că acesta va trece prin buclă de 5 ori. În 5a iterație, valoarea variabilei i devine 5 și codul intră în corpul If. Acum MsgBox „Valoarea lui i este” & i este executat și Sfârșit după care:
Imagine 1. Sfârșitul VBA
După cum puteți vedea, executarea codului este oprită imediat după Sfârșit comanda, deci MsgBox „End Sub” nu se execută niciodată.