W VBA możesz wyjść z Sub lub Function, używając Wyjście Sub lub Wyjdź z funkcji polecenia.
1 | Wyjście Sub |
1 | Wyjdź z funkcji |
Kiedy wykonanie kodu dojdzie do Wyjście Sub lub Wyjdź z funkcji, opuści Sub lub Function i będzie kontynuować wykonywanie dowolnego innego kodu.
Jeśli chcesz dowiedzieć się, jak wyjść z Sub w przypadku błędu, kliknij ten link: VBA On Error Exit Sub
Jeśli chcesz dowiedzieć się, jak zakończyć wykonywanie całego kodu, kliknij ten link: VBA End
Wyjdź z Sub w VBA
Zobaczysz na przykładzie, co się dzieje, gdy używamy Wyjście Sub polecenie w Sub. Stworzyliśmy Sub WyjdźSub, który ma Wyjście Sub polecenie wewnątrz. SubZadzwońWyjdźSub nazywa to Sub. Oto kod:
123456789101112131415161718 | Prywatna Sub ExitSub()Dim i jako liczba całkowitaDla i = 1 do 10Jeśli i = 5 WtedyWyjście SubMsgBox "Wartość i to" & iZakończ, jeśliDalej jaNapis końcowyPrywatne wywołanie SubExitSub()Zadzwoń WyjdźSubMsgBox "Wyjdź z podrzędnych"Napis końcowy |
w WyjdźSub, najpierw wprowadzamy pętlę For, jeśli wartość i jest mniejsza niż 10:
123 | Dla i = 1 do 10Dalej ja |
Następnie sprawdzamy, czy wartość i jest równa 5, używając polecenia If. Jeśli wartość wynosi 5, chcemy wyjść z Sub i zwrócić okno wiadomości z wartością i:
1234 | Jeśli i = 5 WtedyWyjście SubMsgBox "Wartość i to" & iZakończ, jeśli |
Jeśli warunek nie jest spełniony, następująca instrukcja zwiększa i o 1 i ponownie wprowadza pętlę For:
1 | Dalej ja |
w ZadzwońWyjdźSub, najpierw nazywamy Sub WyjdźSub:
1 | Zadzwoń WyjdźSub |
Następnie zwracamy okno wiadomości:
1 | MsgBox "Wyjdź z podrzędnych" |
Jeśli uruchomisz ZadzwońWyjdźSub, najpierw zadzwoni do WyjdźSub. Jeśli wykonasz ten kod w trybie debugowania, zobaczysz, że przejdzie on przez pętlę 5 razy. W 5NS iteracji, wartość zmiennej i wynosi 5, a kod jest wprowadzany w treści If. Teraz Sub WyjdźSub zostanie wyprowadzony i zwrócony do ZadzwońWyjdźSub. Następna linia to MsgBox „Wyjdź z podrzędnych”:
Jak widać, WyjdźSub jest zamykany zaraz po Wyjście Sub polecenie, więc MsgBox „Wartość i to” & i nigdy nie zostaną wykonane.
Wyjdź z funkcji w VBA
Wyjście z funkcji w VBA jest podobne do wyjścia z Sub, tylko polecenie jest Wyjdź z funkcji. W tym przykładzie stworzyliśmy Funkcja wyjścia co zwraca liczbę całkowitą. Sub CallExitFunkcja wywołuje tę funkcję. Oto kod:
1234567891011121314151617181920 | Funkcja prywatna ExitFunc() jako liczba całkowitaDim i jako liczba całkowitaDla i = 1 do 10Jeśli i = 5 WtedyFunkcja wyjścia = iWyjdź z funkcjiZakończ, jeśliDalej jaKoniec funkcjiPrivate Sub CallExitFunction()Dim intFunc jako liczba całkowitaintFunc = Funkcja wyjścia()MsgBox "Wartość intFunc to " & intFuncNapis końcowy |
w Funkcja wyjścia, najpierw wprowadzamy pętlę For, jeśli wartość i jest mniejsza niż 10:
123 | Dla i = 1 do 10Dalej ja |
Następnie sprawdzamy, czy wartość i jest równa 5, używając polecenia If. Jeśli wartość wynosi 5, przypisujemy wartość i do wyniku funkcji i wychodzimy z funkcji:
1234 | Jeśli i = 5 WtedyFunkcja wyjścia = iWyjdź z funkcjiZakończ, jeśli |
Jeśli warunek nie jest spełniony, następująca instrukcja zwiększa i o 1 i ponownie wprowadza pętlę For:
1 | Dalej ja |
w CallExitFunkcja, najpierw wywołujemy funkcję Funkcja wyjścia: Aby to zrobić musimy zadeklarować zmienną intFunc wpisz liczbę całkowitą i przypisz wynik Funkcja wyjścia funkcja do niego:
123 | Dim intFunc jako liczba całkowitaintFunc = Funkcja wyjścia() |
Następnie zwracamy pole Wiadomość z wartością intFunc:
1 | MsgBox "Wartość intFunc to " & intFunc |
Jeśli uruchomisz CallExitFunkcja, najpierw wywoła funkcję Funkcja wyjścia. Jeśli wykonasz ten kod w trybie debugowania, zobaczysz, że przejdzie on przez pętlę 5 razy. W 5NS iteracji, wartość zmiennej i wynosi 5, a kod jest wprowadzany w treści If. Teraz wartość Funkcja wyjścia staje się i, a funkcja zostaje opuszczona i zwrócona do CallExitFunkcja. Następna linia to MsgBox „Wartość intFunc to ” & intFunc: