Prohlášení Excel VBA GoTo
Příkaz VBA GoTo se používá, když při spuštění kódu dojde k chybě, místo zobrazení chyby k obnovení dalšího řádku kódu ignorováním chybové zprávy. Existují dva druhy příkazů GOTO, jedním je výběr libovolného rozsahu listu v zadaném sešitu a druhým je obslužná rutina chyb.
Abychom překonali očekávané chyby ve VBA, máme funkci nazvanou „GOTO“. V tomto článku uvidíme oba druhy GoTo prohlášení.
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba_.png.webp)
2 způsoby použití příkazu GoTo v kódu VBA
# 1 - Metoda Application.GoTo
Pokud chcete jít do konkrétního sešitu nebo konkrétního listu ve všech otevřených sešitech, můžeme použít metodu příkazu Application.GoTo.
Podívejme se na syntaxi metody Application.GoTo
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__2.png.webp)
- (Reference): Toto není nic jiného než specifikovaný odkaz na buňku. Pokud ve výchozím nastavení není uveden odkaz, dostanete se do naposledy použitého rozsahu buněk.
- (Posun): Toto je logické prohlášení PRAVDA nebo NEPRAVDA. Pokud je hodnota TRUE, bude se posouvat oknem. Pokud je hodnota FALSE, nebude se posouvat oknem.
Příklad
Pokud chcete přejít do konkrétní buňky v konkrétním listu, můžeme použít metodu Goto. Mám 3 listy s názvem Jan, únor a březen.
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__3.png.webp)
Pokud chci jít do buňky C5 v listu Jan, použiji níže uvedenou sadu kódů.
Krok 1: Spusťte název makra aplikace Excel.
Kód:
Sub GoTo_Example1 () End Sub
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__4.png.webp)
Krok 2: Spusťte metodu „ Application.GoTo “
Kód:
Sub GoTo_Example1 ()
Aplikace
End Sub
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__5.png.webp)
Krok 3: V referenčním argumentu musíme zadat název listu a v tomto listu musíme uvést konkrétní buňku.
Kód:
Sub GoTo_Example1 () Application.Goto Reference: = Pracovní listy ("Jan"). Rozsah ("C5") Konec Sub
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__6.png.webp)
Krok 4: Uveďte svitek jako TRUE.
Kód:
Sub GoTo_Example1 () Application.Goto Reference: = Pracovní listy ("Jan"). Rozsah ("C5"), Posun: = True End Sub
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__7.png.webp)
Krok 5: Nyní spusťte tento kód pomocí klávesy F5, nebo můžete tento kód spustit také ručně, přenese vás na zadaný list a zadanou buňku.
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba_.gif)
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__8.png.webp)
Nyní změním argument rolování na FALSE a uvidím změnu, se kterou se setká.
Sub GoTo_Example1 () Application.Goto Reference: = Pracovní listy ("Jan"). Rozsah ("C5"), Scroll: = Falešný konec Sub
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__9.png.webp)
Pokud chcete přejít na konkrétní sešit, musíte před názvem sešitu také uvést název sešitu.
Sub GoTo_Example1 () Application.Goto Reference: = Sešity ("Book1.xlsx"). Pracovní listy ("Jan"). Rozsah ("C5"), Scroll: = Falešný konec Sub
# 2 - Metoda obsluhy chyb
Když konkrétní řádek kódu narazí na chybu, pak VBA zastaví provádění zbytku kódu a zobrazí chybovou zprávu.
Podívejte se například na níže uvedený řádek kódu.
Sub GoTo_Example2 () Sheets ("April"). Delete Sheets.Add End Sub
Výše uvedený kód říká odstranit list v dubnu a přidat nový list. Pokud v aktivním sešitu existuje nějaký název listu s názvem duben, odstraní se, jinak se zobrazí níže uvedené dialogové okno chybové zprávy.
![](https://cdn.know-base.net/4923326/vba_goto_statement_how_to_use_goto_statement_in_vba__10.png.webp)
Když spustím tento kód, můj sešit neměl list s názvem duben, takže kód VBA nemohl najít název listu a hodí chybu. Někdy musíme tuto chybu ignorovat, protože často neexistuje název listu nazvaný duben, pak musíme pokračovat dalšími řádky kódu.
K odstranění této chyby můžeme použít metodu GoTo jako obslužnou rutinu chyb.
Nyní upravím kód, protože chyba On přejde na další řádek.
Sub GoTo_Example2 () On Error GoTo NextLine Sheets ("April"). Delete NextLine: Sheets.Add End Sub
Pokud toto spustíte, přidá nový list, přestože neexistuje název listu s názvem duben.
Prohlášení „On Error GoTo NextLine“ chápe, že pokud dojde k nějaké chybě, přeskočí na další řádek a na dalším řádku bude kód VBA přidat nový list.
Věci k zapamatování
- Pokud chcete přeskočit na další řádek, když dojde k chybě, můžete také použít příkaz On Error Resume Next VBA.
- Chcete-li přejít na další, musíte si být jisti, že u daného řádku kódu se očekává chyba.
- Pokud důležitý řádek kódu přeskočí s touto obslužnou rutinou chyby, váš úkol nemusí být dokončen dokonale.