VBA Ukončiť sub alebo funkciu

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:

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave