Instrukcja Excel VBA GoTo
Instrukcja VBA GoTo jest używana, gdy wystąpi błąd podczas wykonywania kodu, zamiast wyświetlać błąd, aby wznowić następny wiersz kodu, ignorując komunikat o błędzie. Istnieją dwa rodzaje instrukcji GOTO: jedna służy do wybierania dowolnego zakresu arkusza w określonym skoroszycie, a druga służy do obsługi błędów.
Aby przezwyciężyć przewidywane błędy w VBA, mamy funkcję o nazwie „GOTO”. W tym artykule zobaczymy oba rodzaje instrukcji GoTo.
2 sposoby korzystania z instrukcji GoTo w kodzie VBA
Możesz pobrać ten szablon VBA GoTo Excel tutaj - Szablon VBA GoTo Excel# 1 - Metoda Application.GoTo
Jeśli chcesz przejść do konkretnego skoroszytu lub konkretnego arkusza we wszystkich otwartych skoroszytach, możemy użyć metody Application.GoTo.
Przyjrzyjmy się składni metody Application.GoTo
- [Odniesienie]: To nic innego jak określone odwołanie do komórki. Jeśli odwołanie nie jest podane domyślnie, przeniesie Cię do ostatnio używanego zakresu komórek.
- [Scroll]: To logiczne stwierdzenie PRAWDA lub FAŁSZ. Jeśli wartość ma wartość TRUE, będzie przewijać okno, jeśli wartość jest FALSE, nie będzie przewijać okna.
Przykład
Jeśli chcesz przejść do konkretnej komórki w określonym arkuszu, możemy skorzystać z metody Goto. Mam 3 arkusze o nazwach Jan, Feb i Mar.
Teraz, jeśli chcę przejść do komórki C5 w arkuszu Stycznia, użyję poniższego zestawu kodu.
Krok 1: Uruchom nazwę makra programu Excel.
Kod:
Sub GoTo_Example1 () End Sub
Krok 2: Uruchom metodę „ Application.GoTo ”
Kod:
Sub GoTo_Example1 ()
Application.Goto
Napis końcowy
Krok 3: W argumencie referencyjnym musimy określić nazwę arkusza, aw tym arkuszu musimy wspomnieć o konkretnej komórce.
Kod:
Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") End Sub
Krok 4: Wspomnij zwój jako PRAWDA.
Kod:
Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = True End Sub
Krok 5: Teraz uruchom ten kod za pomocą klawisza F5 lub możesz również uruchomić ten kod ręcznie, spowoduje to przejście do określonego arkusza i określonej komórki.
Teraz zmienię argument przewijania na FALSE i zobaczę, jaką zmianę napotka.
Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub
Jeśli chcesz przejść do określonego skoroszytu, musisz również wspomnieć nazwę skoroszytu przed nazwą skoroszytu.
Sub GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub
# 2 - Metoda obsługi błędów
Gdy konkretna linia kodu napotka błąd, VBA przestaje wykonywać resztę kodu i wyświetla komunikat o błędzie.
Na przykład spójrz na poniższy wiersz kodu.
Podrzędne GoTo_Example2 () Arkusze („Kwiecień”). Usuń arkusze. Dodaj koniec podrzędnego
Powyższy kod mówi, aby usunąć arkusz April i dodać nowy arkusz. W aktywnym skoroszycie, jeśli istnieje nazwa arkusza o nazwie April, zostanie ona usunięta lub pokaże poniższe okno dialogowe komunikatu o błędzie.
Po uruchomieniu tego kodu mój skoroszyt nie zawierał arkusza o nazwie April, więc kod VBA nie mógł znaleźć nazwy arkusza i zgłasza błąd. Czasami musimy zignorować ten błąd, ponieważ często, jeśli nie ma nazwy arkusza o nazwie April, musimy przejść do innych linii kodu.
Aby wyeliminować ten błąd, możemy użyć metody GoTo jako procedury obsługi błędów.
Teraz zmodyfikuję kod, ponieważ w przypadku błędu przejdź do następnej linii
Sub GoTo_Example2 () W przypadku błędu GoTo NextLine Sheets („April”). Delete NextLine: Sheets.Add End Sub
Teraz, jeśli to uruchomisz, doda nowy arkusz, mimo że nie ma nazwy arkusza o nazwie April.
Instrukcja „On Error GoTo NextLine” rozumie, że jeśli wystąpi jakikolwiek błąd, przeskoczy do następnej linii, aw następnej linii kod VBA ma dodać nowy arkusz.
Rzeczy do zapamiętania
- Jeśli chcesz przejść do następnego wiersza, gdy wystąpi błąd, możesz również użyć instrukcji On Error Resume Next VBA.
- Aby przejść do następnej, musisz mieć pewność, że ta konkretna linia kodu oczekuje błędu.
- Jeśli ważny wiersz kodu zostanie pominięty z tym programem obsługi błędów, wówczas zadanie może nie zostać ukończone idealnie.