VBA Exit Sub nebo funkce

Ve VBA můžete ukončit dílčí nebo funkci pomocí Ukončit dílčí nebo Funkce ukončení příkazy.

1 Ukončit dílčí
1 Funkce ukončení

Když dojde k provedení kódu Ukončit dílčí nebo Funkce ukončení, ukončí dílčí funkci nebo funkci a bude pokračovat v jakémkoli jiném spuštění kódu.

Pokud se chcete dozvědět, jak ukončit Sub při chybě, klikněte na tento odkaz: VBA On Error Exit Sub

Pokud se chcete dozvědět, jak ukončit provádění celého kódu, klikněte na tento odkaz: Konec VBA

Ukončete Sub ve VBA

Na příkladu uvidíte, co se stane, když použijeme Ukončit dílčí příkaz v sub. Vytvořili jsme Sub ExitSub, který má Ukončit dílčí povel uvnitř. SubCallExitSub tomu říká Sub. Zde je kód:

123456789101112131415161718 Soukromý Sub ExitSub ()Dim i As IntegerPro i = 1 až 10Pokud i = 5 PakUkončit dílčíMsgBox „Hodnota i je“ & iKonec IfPříště jáEnd SubPrivate Sub CallExitSub ()Volejte ExitSubMsgBox „Exit Sub“End Sub

V ExitSub, nejprve zadáme For Loop, pokud je hodnota i menší než 10:

123 Pro i = 1 až 10Příště já

Poté zkontrolujeme, zda je hodnota i rovna 5, pomocí příkazu If. Pokud je hodnota 5, chceme Sub opustit a vrátit pole Zpráva s hodnotou i:

1234 Pokud i = 5 PakUkončit dílčíMsgBox „Hodnota i je“ & iKonec If

Pokud podmínka není splněna, následující příkaz zvýší i o 1 a znovu vstoupí do smyčky For:

1 Příště já

V CallExitSub, nejprve zavoláme Sub ExitSub:

1 Volejte ExitSub

Poté vrátíme pole Zpráva:

1 MsgBox „Exit Sub“

Pokud spustíte CallExitSub, nejprve zavolá ExitSub. Pokud tento kód spustíte v režimu ladění, uvidíte, že projde smyčkou 5krát. V 5th iterace, hodnota proměnné i se stane 5 a kód vstoupí do těla If. Nyní Sub ExitSub je ukončen a vrácen do CallExitSub. Další řádek je MsgBox „Exit Sub“:

Jak vidíte, ExitSub je opuštěno hned poté Ukončit dílčí příkaz, takže MsgBox „Hodnota i je“ & i nebude nikdy popraven.

Ukončete funkci ve VBA

Ukončení funkce ve VBA je podobné opuštění Sub, pouze příkaz je Funkce ukončení. V příkladu jsme vytvořili soubor ExitFunc který vrací celé číslo. Sub CallExitFunction volá tuto funkci. Zde je kód:

1234567891011121314151617181920 Soukromá funkce ExitFunc () jako celé čísloDim i As IntegerPro i = 1 až 10Pokud i = 5 PakExitFunc = iFunkce ukončeníKonec IfPříště jáKoncová funkcePrivate Sub CallExitFunction ()Dim intFunc jako celé číslointFunc = ExitFunction ()MsgBox "Hodnota intFunc je" & intFuncEnd Sub

V ExitFunc, nejprve zadáme For Loop, pokud je hodnota i menší než 10:

123 Pro i = 1 až 10Příště já

Poté zkontrolujeme, zda je hodnota i rovna 5, pomocí příkazu If. Pokud je hodnota 5, přiřadíme výsledku funkce hodnotu i a funkci ukončíme:

1234 Pokud i = 5 PakExitFunc = iFunkce ukončeníKonec If

Pokud podmínka není splněna, následující příkaz zvýší i o 1 a znovu vstoupí do smyčky For:

1 Příště já

V CallExitFunction, nejprve voláme funkci ExitFunc: K tomu musíme deklarovat proměnnou intFunc zadejte celé číslo a přiřaďte výsledek ExitFunc fungovat na to:

123 Dim intFunc jako celé číslointFunc = ExitFunction ()

Poté vrátíme pole Zpráva s hodnotou intFunc:

1 MsgBox "Hodnota intFunc je" & intFunc

Pokud spustíte CallExitFunction, nejprve zavolá funkci ExitFunc. Pokud tento kód spustíte v režimu ladění, uvidíte, že projde smyčkou 5krát. V 5th iterace, hodnota proměnné i se stane 5 a kód vstoupí do těla If. Nyní hodnota ExitFunc se stane i a funkce se ukončí a vrátí se do CallExitFunction. Další řádek je MsgBox „Hodnota intFunc je“ & intFunc:

wave wave wave wave wave