În VBA, puteți ieși dintr-un Sub sau Funcție, utilizând Ieșiți din Sub sau Funcția de ieșire comenzi.
1 | Ieșiți din Sub |
1 | Funcția de ieșire |
Când vine executarea codului la Ieșiți din Sub sau Funcția de ieșire, va ieși dintr-un Sub sau Funcție și va continua cu orice altă execuție de cod.
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ă încheiați o execuție a întregului cod, faceți clic pe acest link: VBA End
Ieșiți dintr-un Sub în VBA
Veți vedea pe exemplu ce se întâmplă când folosim Ieșiți din Sub comandă într-un Sub. Am creat un Sub ExitSub, care are Ieșiți din Sub comanda în interior. SubCallExitSub numește acest Sub. Iată codul:
123456789101112131415161718 | Private Sub ExitSub ()Dim i IntegerPentru i = 1 până la 10Dacă i = 5 AtunciIeșiți din SubMsgBox „Valoarea lui i este„ & iEnd IfApoi euSfârșitul SubApel sub privat ExitSub ()Apelați ExitSubMsgBox „Exit Sub”Sfârșitul Sub |
În ExitSub, 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, vrem să ieșim din Sub și să returnăm caseta Mesaj cu valoarea i:
1234 | Dacă i = 5 AtunciIeșiți din SubMsgBox „Valoarea lui i este„ & iEnd 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 CallExitSub, numim mai întâi Sub ExitSub:
1 | Apelați ExitSub |
După aceea returnăm caseta Mesaj:
1 | MsgBox „Exit Sub” |
Dacă rulați CallExitSub, va apela mai întâi ExitSub. 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, Sub ExitSub este ieșit și returnat la CallExitSub. Următoarea linie este MsgBox „Exit Sub”:
După cum puteți vedea, ExitSub este ieșit imediat după Ieșiți din Sub comanda, deci MsgBox „Valoarea lui i este” & i nu va fi niciodată executat.
Ieșiți dintr-o funcție în VBA
Ieșirea unei funcții în VBA este similară cu ieșirea dintr-un Sub, doar comanda este Funcția de ieșire. În exemplu, am creat fișierul ExitFunc care returnează un număr întreg. Sub CallExitFunction numește această funcție. Iată codul:
1234567891011121314151617181920 | Funcție privată ExitFunc () ca întregDim i IntegerPentru i = 1 până la 10Dacă i = 5 AtunciExitFunc = iFuncția de ieșireEnd IfApoi euFuncția de sfârșitPrivate Sub CallExitFunction ()Dim intFunc Ca întregintFunc = ExitFunction ()MsgBox "Valoarea intFunc este" & intFuncSfârșitul Sub |
În ExitFunc, 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, atribuim valoarea i rezultatului funcției și ieșim din funcție:
1234 | Dacă i = 5 AtunciExitFunc = iFuncția de ieșireEnd 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 CallExitFunction, numim mai întâi funcția ExitFunc: Pentru a face acest lucru, trebuie să declarăm variabila intFunc tastați întreg și atribuiți rezultatul ExitFunc funcționează:
123 | Dim intFunc Ca întregintFunc = ExitFunction () |
După aceea returnăm caseta Mesaj cu valoarea intFunc:
1 | MsgBox "Valoarea intFunc este" & intFunc |
Dacă rulați CallExitFunction, va apela mai întâi funcția ExitFunc. 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 valoarea ExitFunc devine i și funcția este ieșită și returnată la CallExitFunction. Următoarea linie este MsgBox „Valoarea intFunc este” & intFunc: