Prohlášení GoTo ve VBA vám umožňuje přeskočit na řádek kódu.
Nejprve vytvořte popisek řádku kdekoli v kódu:
1 | Přeskočit: |
Poté přidejte do příkazu „GoTo“ a přeskočte na popisek řádku
1 | Přejít na GoTo |
GoTo Příklady
Tento příklad testuje rok. Pokud je rok 2022 nebo novější, přejde na označení řádku Přeskočit. To vám umožní přeskočit kód, pokud jsou splněny určité podmínky.
123456789101112 | Sub GoTo_Example ()Dim rok jako celé číslorok = 2019If year> = 2019 Then GoTo Skip„Procesní data za roky <2022MsgBox „Rok je před rokem 2022“Přeskočit:End Sub |
Štítky GoTo s více řádky
Pomocí příkazů GoTo můžete také přeskočit na příslušné řádky kódu. Upravme náš předchozí příklad tak, abychom přešli na různá umístění kódu podle toho, o který rok jde:
1234567891011121314151617181920212223242526272829303132 | Sub GoTo_Statement ()Dim rok jako celé číslorok = 2019Pokud rok = 2019 PakPřejít na rok2019Jinak rok = 2010 PotomPřejít na rok 2020JinýPřejít na rok 2021Konec Ifrok2019:„Proces 2022MsgBox „Rok je 2022“GoTo EndProcrok 2020:„Proces 2022MsgBox „Rok je 2022“GoTo EndProcrok 2021:„Proces 2022+MsgBox „Rok je 2022+“EndProc:End Sub |
Před štítkem každého řádku si všimněte „GoTo EndProc“. Tento řádek kódu jsme přidali, aby byly tyto části kódu přeskočeny, pokud k nim nebude přistupovat příslušný „GoTo“.
Obsluha chyby GoTo Konec procedury
Nyní použijeme zpracování chyb, abychom v případě chyby přešli na konec postupu.
123456789101112 | Sub GoTo_OnError ()Dim i As IntegerPři chybě GoTo EndProci = 5/0MsgBox iEndProc:End Sub |
GoTo Opakujte kód
Náš poslední příklad použije příkaz GoTo k zopakování nějakého kódu.
Níže používáme schránku zpráv Ano / Ne (kliknutím se dozvíte více) k potvrzení, že uživatel upozornění bere na vědomí. Pokud kliknou na „Ne“, zobrazí se okno se zprávou znovu, dokud nekliknou na „Ano“ (viz GIF níže).
1234567891011 | Sub GoTo_YesNoMsgBox ()Opakovaná zpráva:Dim odpověď jako celé čísloanswer = MsgBox ("UPOZORNĚNÍ: Tento soubor byl otevřen jako soubor jen pro čtení, což znamená, že všechny provedené změny nebudou uloženy, dokud/dokud nebudete mít přístupová práva pro zápis." & _Chr (13) & Chr (13) & "Vyberte Soubor, Uložit jako a uložte kopii před prací v tomto souboru." & vbNewLine & vbNewLine & „Rozumíte?“, vbExclamation + vbYesNo, „UPOZORNĚNÍ!“)If answer = vbNo Then GoTo RepeatMsg 'Opakujte, dokud uživatel neklikne na „Ano“End Sub |
VBA GoTo a Line Label v Access VBA
Všechny výše uvedené příklady fungují v Access VBA úplně stejně jako v Excelu VBA.
1234567 | Dílčí testovací cíl ()Při chybě GoTo končíDoCmd.OpenForm "FrmClients"Ukončit dílčíkonec:MsgBox "Nelze otevřít formulář"End Sub |