Instrukcja VBA GoTo - Jak korzystać z instrukcji GoTo w VBA?

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ć oczekiwane 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

# 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.
  • (Przewiń): To logiczne stwierdzenie PRAWDA lub FAŁSZ. Jeśli wartość ma wartość TRUE, będzie przewijać okno. Jeśli wartość ma wartość 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.

Jeśli chcę przejść do komórki C5 w arkuszu Jan, użyję poniższego zestawu kodów.

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 także 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 określony wiersz kodu napotka błąd, VBA przestaje wykonywać pozostałą część kodu i wyświetla komunikat o błędzie.

Na przykład spójrz na poniższy wiersz kodu.

Sub GoTo_Example2 () Arkusze („kwiecień”). Usuń arkusze. Dodaj koniec podrzędnego

Powyższy kod mówi, aby usunąć arkusz w kwietniu i dodać nowy arkusz. W aktywnym skoroszycie, jeśli istnieje jakakolwiek nazwa arkusza o nazwie April, zostanie usunięta lub pokaże poniższe okno dialogowe komunikatu o błędzie.

Po uruchomieniu tego kodu w moim skoroszycie nie było 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ż błąd przechodzi do następnej linii.

Sub GoTo_Example2 () W przypadku błędu GoTo NextLine Sheets („April”). Delete NextLine: Sheets.Add End Sub

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, a w 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ępnego, musisz mieć pewność, że ten konkretny wiersz kodu oczekuje błędu.
  • Jeśli ważny wiersz kodu zostanie pominięty z tym programem obsługi błędów, zadanie może nie zostać ukończone idealnie.

Interesujące artykuły...