Zwrot VBA

Instrukcja zwrotu VBA programu Excel

VBA jest cudowny i ratuje życie dla tych, którzy znają kodowanie VBA, może zaoszczędzić mnóstwo czasu w naszym miejscu pracy. W naszych wcześniejszych artykułach omówiliśmy wiele rzeczy i koncepcji powrotu VBA. Jedną z takich koncepcji jest instrukcja GoSub Return. W tym artykule przedstawimy Ci te koncepcje.

Co to jest instrukcja zwrotu GoSub?

Polecenie „Go Sub” oznacza, że ​​przejdzie do linii kodu wskazanej przez etykietę poprzez nazwę i wykona określony zestaw zadania, aż znajdzie polecenie „Return”.

Jest to podobne do instrukcji obsługi błędów „GoTo Label”, ale „GoSub Return” powoduje powrót do następnej linii kodu zamiast kontynuowania od nazwy etykiety.

Poniżej znajduje się składnia instrukcji VBA GoSub Return.

GoSub [nazwa etykiety] … .. Linia kodu [nazwa etykiety]: … .. Linia kodu do wykonania zadania

Wiem, że trudno to zrozumieć, czytając składnię, ale korzystając z przykładu, możesz zrozumieć koncepcję.

Zanim przejdę do przykładów, powiem kilka rzeczy na temat tego stwierdzenia.

  • Instrukcja GoSub wywołuje podprogram w vba, który jest nazwany etykietą w ramach tej samej procedury lub funkcji.
  • Zarówno GoSub, jak i Return powinny znajdować się w tej samej procedurze, nie możemy tutaj wywołać innego makra podprogramu.
  • Możesz wprowadzić dowolną liczbę instrukcji GoSub Return.
  • Instrukcja return będzie kontynuować wykonywanie kodu od miejsca, w którym zostało przerwane, zanim skoczył do podprocedury wskazanej przez nazwę etykiety.

Jak korzystać z instrukcji zwrotu GoSub w VBA?

Możesz pobrać ten szablon VBA Return Excel tutaj - szablon VBA Return Excel

Przykład 1

Aby zrozumieć użycie tego stwierdzenia, najpierw spójrz na poniższy kod, a później wyjaśnię ci kod wiersz po wierszu.

Kod:

 Sub Go_Sub_Return () GoSub Macro1 'Label Name1 GoSub Macro2' Label Name2 GoSub Macro3 'Label Name3 Exit Sub Macro1: MsgBox "Teraz uruchomione Macro1" Return Macro2: MsgBox "Teraz uruchomione Macro2" Return Macro3: MsgBox "Teraz uruchomione Macro3" Return End Sub 

Aby zrozumieć ten kod, uruchom kod wiersz po wierszu, naciskając klawisz F8. Pierwsze naciśnięcie klawisza F8 zainicjuje uruchamianie makra.

Teraz naciśnij klawisz F8 jeszcze raz, aby przejść do następnej linii.

Wszyscy wiemy, że makro będzie uruchamiać kod linia po linii, ale jeśli naciśniesz klawisz F8, nie przejdzie do następnej linii, a raczej działa inaczej.

Przeskoczyło do etykiety o nazwie „Makro1”, ponieważ w poprzedniej instrukcji „GoSub” poinstruowaliśmy makro, aby przechodziło do nazwy etykiety podprocedury „Makro1”, a zatem przeskoczyło do odpowiedniej nazwy etykiety.

Teraz, naciskając klawisz F8, makro programu Excel wykona zadanie etykiety „Makro1” polegające na wyświetleniu wyniku w oknie komunikatu.

Kliknij OK w oknie komunikatu, aby powrócić do okna kodowania.

Teraz podświetlił instrukcję „Return”, jeśli naciśniesz klawisz F8 jeszcze raz, co zrobi, to „Return Back” do poprzedniej linii kodu, zanim przeskoczy do nazwy etykiety.

Ostatni raz wykonał kod „GoSub Macro1” i wykonał zadanie z nazwą etykiety „Macro1”, ponieważ wspomnieliśmy o instrukcji „Return”, następuje powrót do następnej linii kodu, tj.

„GoSub Macro2”

To, co mówi stwierdzenie, to „przejdź do etykiety o nazwie Macro2”. Poniżej dla etykiety „Macro2” wspomniałem o konkretnym zestawie zadań.

Teraz otrzymamy drugie zadanie podprocedury polegające na pokazaniu wartości w oknie komunikatu.

Teraz kliknij OK, podświetli to drugą instrukcję „Return”.

Teraz po kliknięciu klawisza F8 nastąpi powrót do następnej linii kodu, zanim powróci do etykiety „Macro2”. Teraz podświetli „GoSub Macro3”.

Teraz przejdzie do etykiety „Macro3”, naciśnij klawisz F8.

Teraz trzecie zadanie etykiety zostanie wykonane.

Teraz kliknij OK, podświetli się oświadczenie „Zwrot”.

Ponowne naciśnięcie klawisza F8 spowoduje powrót do wiersza kodu „Exit Sub”.

Nie, opuści podprogram. Konieczne jest dodanie słowa „Exit Sub”, w przeciwnym razie wystąpi błąd.

Przykład nr 2

Spójrzmy teraz na jeszcze jeden przykład użycia instrukcji GoSub Return.

Kod:

 Sub Go_Sub_Return1 () Dim Num As Long Num = Application.InputBox (Prompt: = "Proszę podać tutaj numer", Title: = "Numer działu") Jeśli Num> 10 Wtedy GoSub Division Else MsgBox "Liczba jest mniejsza niż 10" Wyjście Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub 

Ten kod poprosi cię o wpisanie liczby, która jest> 10, jeśli liczba jest> 10, wykona zadanie podzielenia jej przez 5 (Nazwa etykiety to „Podział”) lub pokaże wiadomość jako „Numer jest mniej niż 10".

Rzeczy do zapamiętania

  • Nazwa etykiety powinna być taka sama w instrukcjach GoSub i Return, aw instrukcji Return nazwa etykiety powinna być zakończona dwukropkiem (:).
  • Zawsze używaj Exit Sub w VBA po wykonaniu wszystkich instrukcji return, aby uniknąć komunikatu o błędzie.