Instrukcja Excel VBA GoTo

Instrukcja VBA Goto służy do pokonywania przewidywanych błędów, podczas gdy dodajemy i tworzymy ogromny kod linii w VBA. Ta funkcja w VBA pozwala nam przejść z pełnym kodem zgodnie z naszymi przewidywaniami lub założeniami. Z pomocą Goto możemy przejść do dowolnego określonego kodu linii lub lokalizacji w VBA. Można to zrobić na dwa sposoby, które zobaczymy w nadchodzących przykładach.

Jak korzystać z Excel VBA Goto Statement?

Nauczymy się korzystać z Excel VBA Goto Statement na kilku przykładach.

Możesz pobrać ten szablon VBA GoTo Excel tutaj - Szablon VBA GoTo Excel

Przykład 1

Pierwszym sposobem korzystania z VBA Goto jest metoda Application.Goto . Za pomocą instrukcji Application.Goto możemy przejść do dowolnej konkretnej lokalizacji, skoroszytu lub arkusza roboczego, który jest obecnie otwarty. To oświadczenie będzie wyglądać jak poniżej.

  • (Odwołanie): To nic innego jak określone odwołanie do komórki. Jeśli odniesienie nie zostanie podane domyślnie, przeniesie Cię do ostatnio używanego zakresu komórek.
  • (Przewiń): To logiczne wyrażenie PRAWDA lub FAŁSZ. Jeśli wartością jest PRAWDA, przewinie się ono przez okno, jeśli wartość FAŁSZ nie przewinie się przez okno.

W tym celu przejdź do okna VBA i kliknij Moduł znajdujący się w menu Wstaw, jak pokazano poniżej.

Teraz otworzy nowy moduł. Napisz podkategorię makra o nazwie Goto, ponieważ wykonujemy ten kod, jak pokazano poniżej.

Kod:

 Sub VBAGoto () End Sub 

Teraz napisz Application.Goto, aby włączyć aplikację lub miejsce, w którym chcemy iść.

Kod:

 Sub VBAGoto () Application.Goto End Sub 

Następnie podaj Odwołanie do dowolnego arkusza roboczego lub skoroszytu i zakresu komórek. Podaliśmy tutaj zakres komórek B3 i arkuszy o nazwie „VBA Goto”.

Kod:

 Sub VBAGoto () Application.Goto Reference: = Arkusze robocze („VBA_Goto1”). Zakres („B3”), End Sub 

Teraz, aby faktycznie przejść do wspomnianej komórki, musimy dodać argument Scroll, który bezpośrednio przeniesie nas do określonej komórki. Teraz zmienimy argument przewijania z FAŁSZ, jak pokazano poniżej.

Kod:

 Sub VBAGoto () Application.Goto Reference: = Arkusze robocze („VBA_Goto1”). Zakres („B3”), Przewijanie: = False End Sub 

Po uruchomieniu kodu za pomocą klawisza F5 lub ręcznie zobaczymy, że kursor zostanie przesunięty do komórki B3 bez zmiany orientacji wybranego arkusza, jak pokazano poniżej.

Teraz zmienimy argument przewijania z FAŁSZ na PRAWDA.

Kod:

 Sub VBAGoto () Application.Goto Reference: = Arkusze robocze („VBA_Goto1”). Zakres („B3”), Przewijanie: = True End Sub 

Początkowo trzymamy kursor w komórce A5, jak pokazano poniżej. Teraz uruchom cały kod za pomocą klawisza F5 lub ręcznie. Zobaczymy kursor, który był w komórce A5, jest teraz przewijany w górę i przesuwany do komórki B3, a cała tabela została przeniesiona na najwyższy poziom arkusza, zaczynając od tej samej komórki, co B3, jak pokazano na poniższym zrzucie ekranu.

Przykład nr 2

Istnieje inny sposób użycia argumentu VBA Goto. Używając Goto w VBA w tym przykładzie, możemy pominąć argument, który powoduje błąd. W tym celu włóż nowy moduł do VBA i uruchom podkategorię z nazwą użytego argumentu, jak pokazano poniżej. Możesz użyć dowolnej innej nazwy.

Kod:

 Sub VBAGoto () End Sub 

W tym celu rozważymy 3 liczby całkowite X, Y i Z, otwierając podkategorię w VBA, jak pokazano poniżej.

Kod:

 Sub VBAGoto () Dim X As Integer, Y As Integer, Z As Integer End Sub 

Rozważmy teraz także podział matematyczny, w którym podzielimy 10, 20 i 30 za pomocą 0, 2 i 4, jak pokazano poniżej.

Kod:

 Sub VBAGoto () Dim X As Integer, Y As Integer, Z As Integer X = 10/0 Y = 20/2 Z = 30/4 End Sub 

Jeśli uruchomimy kod, otrzymamy ten sam komunikat o błędzie co Błąd czasu wykonania 11.

Powyższy komunikat o błędzie Błąd czasu wykonania „11” pojawia się tylko wtedy, gdy zapisane wyrażenie matematyczne jest niepoprawne. Teraz, aby zastąpić ten błąd, użyjemy tekstu On Error GoTo ze słowem YResult, aby pominąć komunikat o błędzie i uzyskać wynik, który działa dobrze, jak pokazano poniżej.

Mimo to nasz kod nie jest kompletny. Użycie Goto z instrukcją „ YResult :” spowoduje jedynie pominięcie linii błędu w kodzie. Ale ponownie wyświetli błąd, ponieważ Labe nie został zdefiniowany, jak pokazano poniżej.

Kod:

 Sub VBAGoto () Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10/0 Y = 20/2 Z = 30/4 End Sub 

Teraz, aby go ukończyć, musimy zdefiniować etykietę . Etykieta jest częścią instrukcji w Kodowaniu VBA, która jest używana, gdy chcemy pominąć pewną część kodu do dowolnego zdefiniowanego odpowiedniego wiersza kodu. Jak już mamy YResult z argumentem Goto . Następnie wstawimy to samo przed liczbą całkowitą Y. Teraz uruchom ponownie kod.

Kod:

 Sub VBAGoto () Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10/0 YResult: Y = 20/2 Z = 30/4 End Sub 

Jak widać i zrobione, nie otrzymaliśmy żadnego komunikatu o błędzie, co oznacza, że ​​nasz kod jest poprawny i pomija ten wiersz kodu, który powodował błąd, i podaje dane wyjściowe, w których został zapisany poprawny kod. Teraz, aby wydrukować wynik kodu, należy wstawić pola komunikatów dla każdej liczby całkowitej z argumentem pomocy MsgBox, jak pokazano poniżej.

Kod:

 Sub VBAGoto () Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10/0 YResult: Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Po zakończeniu uruchom pełny kod, aby zobaczyć wynik. Będziemy generować wynik dzielenia każdej zdefiniowanej liczby całkowitej jako 0, 10 i 8, jak pokazano na poniższym zrzucie ekranu.

W przypadku błędu instrukcja GoTo YResult pomogła nam bezpośrednio przejść do wymienionej liczby całkowitej wyniku, tak jak to zrobiliśmy dla liczby całkowitej Y. Wyjście dla X jako 0 pokazuje, że zapisano niepoprawny argument instrukcji. Możemy Etykietować nawet przed Z, ale dałoby to nam wynik tylko liczby całkowitej Z. Dla X i Y ponownie pokaże 0 jako wynik.

Plusy VBA przy błędzie

  • Możemy obliczyć dowolny wzór matematyczny, nawet jeśli jest on niepoprawny.
  • W przypadku większych struktur kodowania, w których występują szanse lub występują błędy, użycie GoTo może dać poprawny wynik nawet między wierszami kodów.
  • Daje to lepszy wynik w porównaniu do wyniku uzyskanego z normalnych obliczeń programu Excel, pomimo niepoprawnego argumentu.

Rzeczy do zapamiętania

  • Pamiętaj o pliku w pliku Excel z włączoną obsługą makr, abyśmy mogli używać utworzonego kodu VBA wiele razy.
  • Skompiluj napisany kod przed implementacją z dowolnym wymaganiem programu Excel.
  • Możesz przypisać napisany kod do dowolnego przycisku, abyśmy mogli szybko kliknąć przycisk i uruchomić kod.
  • Użyj odpowiednio Etykiety, jak pokazano w przykładzie 2, aby uzyskać wynik dla kompletnego poprawnego kodu.

Polecane artykuły

To był przewodnik po VBA GoTo Statement. Tutaj omawialiśmy, jak korzystać z Excela VBA GoTo, wraz z kilkoma praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Jak korzystać z pętli Excel VBA?
  2. Funkcja VBA w programie Excel
  3. Przewodnik po zakresie w programie Excel
  4. Jak korzystać z funkcji VBA VLOOKUP?

Kategoria: