VBA: ssa voit poistua ala- tai toiminnosta käyttämällä Lopeta Sub tai Lopeta toiminto komentoja.
1 | Lopeta Sub |
1 | Lopeta toiminto |
Kun koodin suoritus tulee Lopeta Sub tai Lopeta toiminto, se poistuu aliosasta tai toiminnosta ja jatkaa minkä tahansa muun koodin suorittamisen kanssa.
Jos haluat oppia poistumaan Sub -virheestä, napsauta tätä linkkiä: VBA On Error Exit Sub
Jos haluat oppia lopettamaan koko koodin suorittamisen, napsauta tätä linkkiä: VBA End
Poistu Sub VBA: sta
Näet esimerkistä, mitä tapahtuu, kun käytämme Lopeta Sub komento sub. Loimme Subin ExitSub, jolla on Lopeta Sub komento sisällä. SubSoitaExitSub kutsuu tätä Subiksi. Tässä on koodi:
123456789101112131415161718 | Private Sub ExitSub ()Dim i Kuten kokonaislukuI = 1-10Jos i = 5 niinLopeta SubMsgBox "i: n arvo on" & iLoppu JosSeuraavaksi minäEnd SubYksityinen alipuheluExitSub ()Soita ExitSubMsgBox "Exit Sub"End Sub |
Kohteessa ExitSub, syötetään ensin For Loop, jos i: n arvo on alle 10:
123 | I = 1-10Seuraavaksi minä |
Tämän jälkeen tarkistamme If -komennolla, onko i: n arvo 5. Jos arvo on 5, haluamme poistua Sub -osiosta ja palauttaa Viesti -ruudun, jonka arvo on i:
1234 | Jos i = 5 niinLopeta SubMsgBox "i: n arvo on" & iLoppu Jos |
Jos ehto ei täyty, seuraava lause kasvaa i: llä 1: llä ja siirtyy uudelleen For -silmukkaan:
1 | Seuraavaksi minä |
Kohteessa SoitaExitSub, soitamme ensin Subille ExitSub:
1 | Soita ExitSub |
Palautamme sen jälkeen Viesti -ruudun:
1 | MsgBox "Exit Sub" |
Jos suoritat SoitaExitSub, se soittaa ensin ExitSub. Jos suoritat tämän koodin virheenkorjaustilassa, näet, että se menee silmukan läpi 5 kertaa. 5: ssäth iteraatio, muuttujan i arvoksi tulee 5 ja koodi tulee If -runkoon. Nyt Sub ExitSub poistuu ja palautetaan SoitaExitSub. Seuraava rivi on MsgBox "Exit Sub":
Kuten näette, ExitSub poistuu heti sen jälkeen Lopeta Sub komento, joten MsgBox “i: n arvo on” & i ei koskaan teloiteta.
Poistu toiminnosta VBA: ssa
Toiminnon poistuminen VBA: sta on samanlainen kuin Sub -osasta poistuminen, vain komento on Lopeta toiminto. Esimerkissä loimme ExitFunc joka palauttaa kokonaisluvun. Sub CallExitFunction kutsuu tätä toimintoa. Tässä on koodi:
1234567891011121314151617181920 | Yksityinen toiminto ExitFunc () kokonaislukunaDim i Kuten kokonaislukuI = 1-10Jos i = 5 niinExitFunc = iLopeta toimintoLoppu JosSeuraavaksi minäLopeta toimintoYksityinen alipuheluExitFunction ()Dim intFunc kokonaislukunaintFunc = ExitFunction ()MsgBox "intFuncin arvo on" & intFuncEnd Sub |
Kohteessa ExitFunc, syötetään ensin For Loop, jos i: n arvo on alle 10:
123 | I = 1-10Seuraavaksi minä |
Tämän jälkeen tarkistamme If -komennolla, onko i: n arvo 5. Jos arvo on 5, määritämme funktion tulokseen arvon i ja poistumme toiminnosta:
1234 | Jos i = 5 niinExitFunc = iLopeta toimintoLoppu Jos |
Jos ehto ei täyty, seuraava lause kasvaa i: llä 1: llä ja siirtyy uudelleen For -silmukkaan:
1 | Seuraavaksi minä |
Kohteessa CallExitFunction, kutsumme ensin funktiota ExitFunc: Tätä varten meidän on ilmoitettava muuttuja intFunc kirjoita kokonaisluku ja määritä ExitFunc toiminto sille:
123 | Dim intFunc kokonaislukunaintFunc = ExitFunction () |
Tämän jälkeen palautamme Viesti -ruudun, jonka arvo on intFunc:
1 | MsgBox "IntFuncin arvo on" & intFunc |
Jos suoritat CallExitFunction, se kutsuu ensin toiminnon ExitFunc. Jos suoritat tämän koodin virheenkorjaustilassa, näet, että se menee silmukan läpi 5 kertaa. 5: ssäth iteraatio, muuttujan i arvoksi tulee 5 ja koodi tulee If -runkoon. Nyt arvo ExitFunc tulee i ja funktio poistuu ja palautetaan CallExitFunction. Seuraava rivi on MsgBox “IntFuncin arvo on” ja intFunc: