VBA varat iziet no apakšfunkcijas vai funkcijas, izmantojot Iziet no apakšnodaļas vai Iziet funkcija komandas.
1 | Iziet no apakšnodaļas |
1 | Iziet funkcija |
Kad tiek izpildīts kods Iziet no apakšnodaļas vai Iziet funkcija, tas izies no apakšgrupas vai funkcijas un turpinās ar jebkuru citu koda izpildi.
Ja vēlaties uzzināt, kā iziet no apakšbāzes kļūdas dēļ, noklikšķiniet uz šīs saites: VBA On Error Exit Sub
Ja vēlaties uzzināt, kā pārtraukt visa koda izpildi, noklikšķiniet uz šīs saites: VBA beigas
Iziet no apakšprogrammas VBA
Par piemēru jūs redzēsiet, kas notiek, kad mēs izmantojam Iziet no apakšnodaļas komandu apakšnodaļā. Mēs izveidojām apakšnodaļu ExitSub, kurai ir Iziet no apakšnodaļas komanda iekšā. ApakšdaļaCallExitSub sauc šo apakšnodaļu. Šeit ir kods:
123456789101112131415161718 | Private Sub ExitSub ()Dim i As IntegerJa i = 1 līdz 10Ja i = 5, tadIziet no apakšnodaļasMsgBox "i vērtība ir" & iBeigas JaTālāk iBeigu apakšPrivāts apakšzvansExitSub ()Zvaniet ExitSubMsgBox "Exit Sub"Beigu apakš |
Iekš ExitSub, vispirms ievadām cilpu For, ja i vērtība ir mazāka par 10:
123 | Ja i = 1 līdz 10Tālāk i |
Pēc tam mēs pārbaudām, vai i vērtība ir vienāda ar 5, izmantojot komandu If. Ja vērtība ir 5, mēs vēlamies iziet no apakšgrupas un atgriezt lodziņu Ziņojums ar i vērtību:
1234 | Ja i = 5, tadIziet no apakšnodaļasMsgBox "i vērtība ir" & iBeigas Ja |
Ja nosacījums nav izpildīts, šāds paziņojums palielina i par 1 un atkal tiek ievadīts cilnē For:
1 | Tālāk i |
Iekš CallExitSub, mēs vispirms izsaucam Sub ExitSub:
1 | Zvaniet ExitSub |
Pēc tam mēs atgriežam ziņojumu lodziņu:
1 | MsgBox "Exit Sub" |
Ja jūs vadāt CallExitSub, tas vispirms izsauks ExitSub. Ja izpildīsit šo kodu atkļūdošanas režīmā, jūs redzēsit, ka tas iet cauri cilpai 5 reizes. 5tūkst iterācija, mainīgā i vērtība kļūst par 5 un kods tiek ievadīts If korpusā. Tagad Sub ExitSub tiek iziets un atgriezts CallExitSub. Nākamā rinda ir MsgBox “Exit Sub”:
Kā redzat, ExitSub tiek iziets uzreiz pēc tam Iziet no apakšnodaļas komanda, tāpēc MsgBox “i vērtība ir” un i nekad netiks izpildīts.
Iziet no funkcijas VBA
Funkcijas iziešana VBA ir līdzīga iziešanai no Sub, tikai komanda ir Iziet funkcija. Piemērā mēs izveidojām ExitFunc kas atgriež veselu skaitli. Apakšdaļa CallExitFunction izsauc šo funkciju. Šeit ir kods:
1234567891011121314151617181920 | Privātā funkcija ExitFunc () kā vesels skaitlisDim i As IntegerJa i = 1 līdz 10Ja i = 5, tadExitFunc = iIziet funkcijaBeigas JaTālāk iBeigu funkcijaPrivāts apakšzvansExitFunction ()Dim intFunc Kā vesels skaitlisintFunc = ExitFunction ()MsgBox "IntFunc vērtība ir" & intFuncBeigu apakš |
Iekš ExitFunc, vispirms ievadām cilpu For, ja i vērtība ir mazāka par 10:
123 | Ja i = 1 līdz 10Tālāk i |
Pēc tam mēs pārbaudām, vai i vērtība ir vienāda ar 5, izmantojot komandu If. Ja vērtība ir 5, mēs piešķiram i vērtību funkcijas rezultātam un izejam no funkcijas:
1234 | Ja i = 5, tadExitFunc = iIziet funkcijaBeigas Ja |
Ja nosacījums nav izpildīts, šāds paziņojums palielina i par 1 un atkal tiek ievadīts cilnē For:
1 | Tālāk i |
Iekš CallExitFunction, vispirms izsaucam funkciju ExitFunc: Lai to izdarītu, mums ir jādeklarē mainīgais intFunc ierakstiet veselu skaitli un piešķiriet rezultātu ExitFunc funkcija tam:
123 | Dim intFunc Kā vesels skaitlisintFunc = ExitFunction () |
Pēc tam mēs atgriežam lodziņu Ziņojums ar vērtību intFunc:
1 | MsgBox "IntFunc vērtība ir" & intFunc |
Ja jūs vadāt CallExitFunction, tas vispirms izsauks funkciju ExitFunc. Ja izpildīsit šo kodu atkļūdošanas režīmā, jūs redzēsit, ka tas iet cauri cilpai 5 reizes. 5tūkst iterācija, mainīgā i vērtība kļūst par 5 un kods tiek ievadīts If korpusā. Tagad vērtība ExitFunc kļūst par i, un funkcija tiek aizvērta un atgriezta CallExitFunction. Nākamā rinda ir MsgBox “IntFunc vērtība ir” un intFunc: