Vo VBA môžete ukončiť sub alebo funkciu pomocou Ukončiť sub alebo Ukončiť funkciu príkazy.
1 | Ukončiť sub |
1 | Ukončiť funkciu |
Keď príde na vykonanie kódu Ukončiť sub alebo Ukončiť funkciu, ukončí to sub alebo funkciu a bude pokračovať v akomkoľvek inom spustení kódu.
Ak sa chcete dozvedieť, ako opustiť Sub pri chybe, kliknite na tento odkaz: VBA Pri chybe Ukončiť Sub
Ak sa chcete dozvedieť, ako ukončiť spustenie celého kódu, kliknite na tento odkaz: Koniec VBA
Ukončite ponorku vo VBA
Na príklade uvidíte, čo sa stane, keď použijeme Ukončiť sub príkaz v sub. Vytvorili sme Sub ExitSub, ktorý má Ukončiť sub príkaz dovnútra. The SubCallExitSub nazýva to Sub. Tu je kód:
123456789101112131415161718 | Súkromný podchod ExitSub ()Dim i As IntegerPre i = 1 až 10Ak i = 5 PotomUkončiť subMsgBox „Hodnota i je“ & iKoniec AkĎalej iKoniec podPrivate Sub CallExitSub ()Zavolajte na ExitSubMsgBox „Exit Sub“Koniec pod |
V ExitSub, najskôr zadáme For Loop, ak je hodnota i menšia ako 10:
123 | Pre i = 1 až 10Ďalej i |
Potom pomocou príkazu If skontrolujeme, či je hodnota i rovná 5. Ak je hodnota 5, chceme ukončiť Sub a vrátiť pole Správa s hodnotou i:
1234 | Ak i = 5 PotomUkončiť subMsgBox „Hodnota i je“ & iKoniec Ak |
Ak podmienka nie je splnená, nasledujúci príkaz zvýši i o 1 a znova vstúpi do cyklu For:
1 | Ďalej i |
V CallExitSub, najskôr voláme Sub ExitSub:
1 | Zavolajte na ExitSub |
Potom vrátime pole Správa:
1 | MsgBox „Exit Sub“ |
Ak spustíte súbor CallExitSub, najskôr zavolá ExitSub. Ak spustíte tento kód v režime ladenia, uvidíte, že prejde slučkou 5 krát. V 5th iterácia, hodnota premennej i sa stane 5 a kód vstúpi do tela If. Teraz Sub ExitSub je opustený a vrátený do CallExitSub. Ďalší riadok je MsgBox „Exit Sub“:
Ako vidíte, ExitSub sa hneď potom opustí Ukončiť sub príkaz, takže MsgBox „Hodnota i je“ & i nikdy nebude popravený.
Ukončite funkciu vo VBA
Ukončenie funkcie vo VBA je podobné opusteniu Sub, iba príkaz je Ukončiť funkciu. V príklade sme vytvorili súbor ExitFunc ktorý vráti celé číslo. The Sub CallExitFunction nazýva túto funkciu. Tu je kód:
1234567891011121314151617181920 | Súkromná funkcia ExitFunc () ako celé čísloDim i As IntegerPre i = 1 až 10Ak i = 5 PotomExitFunc = iUkončiť funkciuKoniec AkĎalej iKoncová funkciaPrivate Sub CallExitFunction ()Dim intFunc ako celé číslointFunc = ExitFunction ()MsgBox „Hodnota intFunc je“ & intFuncKoniec pod |
V ExitFunc, najskôr zadáme For Loop, ak je hodnota i menšia ako 10:
123 | Pre i = 1 až 10Ďalej i |
Potom pomocou príkazu If skontrolujeme, či je hodnota i rovná 5. Ak je hodnota 5, priradíme výsledku výsledku hodnotu i a funkciu ukončíme:
1234 | Ak i = 5 PotomExitFunc = iUkončiť funkciuKoniec Ak |
Ak podmienka nie je splnená, nasledujúci príkaz zvýši i o 1 a znova vstúpi do cyklu For:
1 | Ďalej i |
V CallExitFunction, najskôr zavoláme funkciu ExitFunc: Aby sme to urobili, musíme deklarovať premennú intFunc zadajte celé číslo a priraďte výsledok ExitFunc fungovať na to:
123 | Dim intFunc ako celé číslointFunc = ExitFunction () |
Potom vrátime pole Správa s hodnotou intFunc:
1 | MsgBox „Hodnota intFunc je“ & intFunc |
Ak spustíte súbor CallExitFunction, najskôr zavolá funkciu ExitFunc. Ak spustíte tento kód v režime ladenia, uvidíte, že prejde slučkou 5 krát. V 5th iterácia, hodnota premennej i sa stane 5 a kód vstúpi do tela If. Teraz hodnota súboru ExitFunc sa stane i a funkcia sa ukončí a vráti sa do CallExitFunction. Ďalší riadok je MsgBox „Hodnota intFunc je“ & intFunc: