VBA Przejdź do etykiety linii

Instrukcja GoTo w VBA umożliwia przeskoczenie do wiersza kodu.

Najpierw utwórz etykietę wiersza w dowolnym miejscu w kodzie:

1 Pominąć:

Następnie dodaj do instrukcji „GoTo”, aby przejść do etykiety wiersza

1 Przejdź do Pomiń

Przejdź do przykładów

Ten przykład testuje rok. Jeśli rok to 2022 lub później, przejdzie do etykiety Pomiń linię. Pozwala to pominąć kod, jeśli spełnione są określone warunki.

123456789101112 Sub IdźDo_Przykład()Dim rok jako liczba całkowitarok = 2019Jeśli rok >= 2019 Następnie przejdź do Pomiń„Dane procesowe za lata < 2022”MsgBox "Rok jest przed 2022"Pominąć:Napis końcowy

Idź do etykiet wielu linii

Możesz również użyć instrukcji GoTo, aby przeskoczyć do odpowiednich wierszy kodu. Dostosujmy nasz poprzedni przykład, aby przejść do różnych lokalizacji kodu w zależności od tego, który jest rok:

1234567891011121314151617181920212223242526272829303132 Sub GoTo_Statement()Dim rok jako liczba całkowitarok = 2019Jeśli rok = 2019 WtedyIdźDo roku2019ElseIf rok = 2010 WtedyIdźDo roku2020W przeciwnym raziePrzejdź do roku2021Zakończ, jeślirok 2019:„Proces 2022”MsgBox "Rok to 2022"Przejdź do końca procesurok2020:„Proces 2022”MsgBox "Rok to 2022"Przejdź do końca procesurok2021:„Proces 2022+”MsgBox "Rok to 2022+"EndProc:Napis końcowy

Zwróć uwagę na „GoTo EndProc” przed każdą etykietą linii. Dodaliśmy ten wiersz kodu, aby te sekcje kodu były pomijane, chyba że uzyskuje się do nich dostęp za pomocą odpowiedniego „GoTo”.

Przejdź do obsługi błędów Koniec procedury

Teraz użyjmy obsługi błędów, aby przejść do końca procedury, jeśli wystąpi błąd.

123456789101112 Sub GoTo_OnError ()Dim i jako liczba całkowitaW przypadku błędu Przejdź do EndProcja = 5 / 0MsgBox iEndProc:Napis końcowy

Idź, aby powtórzyć kod

Nasz ostatni przykład użyje instrukcji GoTo do powtórzenia kodu.

Poniżej używamy pola komunikatu Tak / Nie (kliknij, aby dowiedzieć się więcej), aby potwierdzić, że użytkownik akceptuje ostrzeżenie. Jeśli klikną „Nie”, okno komunikatu będzie wyświetlane ponownie, dopóki nie klikną „Tak” (patrz GIF poniżej).

1234567891011 Sub GoTo_YesNoMsgBox()Powtórz wiadomość:Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("OSTRZEŻENIE: Ten plik został otwarty jako plik tylko do odczytu, co oznacza, że ​​wszelkie wprowadzone przez Ciebie zmiany nie zostaną zapisane, chyba że/dopóki nie masz praw dostępu do zapisu. " & _Chr(13) & Chr(13) & "Wybierz plik, Zapisz jako, aby zapisać kopię przed rozpoczęciem pracy w tym pliku." & vbNewLine & vbNewLine & "Czy rozumiesz?", vbWykrzyknik + vbYesNo, "OSTRZEŻENIE!")Jeśli odpowiedź = vbNo Then GoTo RepeatMsg 'Powtarzaj aż użytkownik kliknie „Tak”Napis końcowy

VBA Przejdź do etykiety linii w programie Access VBA

Wszystkie powyższe przykłady działają dokładnie tak samo w Access VBA, jak w Excel VBA.

1234567 PodtestPrzejdźDo()W przypadku błędu Przejdź do zakończeniaDoCmd.OpenForm "FrmClients"Wyjście Subkończący się:MsgBox "Nie można otworzyć formularza"Napis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave