Vyhlásenie GoTo vo VBA vám umožňuje prejsť na riadok kódu.
Najprv vytvorte štítok riadka kdekoľvek v kóde:
1 | Preskočiť: |
Potom pridajte do príkazu „GoTo“, aby ste preskočili na označenie riadka
1 | GoTo Preskočiť |
Príklady GoTo
Tento príklad testuje rok. Ak je rok 2022 alebo novší, prejde na označenie riadka Preskočiť. To vám umožní preskočiť kód, ak sú splnené určité podmienky.
123456789101112 | Sub GoTo_Example ()Dim year As Integerrok = 2019Ak rok> = 2019, potom GoTo Preskočiť„Údaje o procese za roky <2022MsgBox „Rok je pred rokom 2022“Preskočiť:Koniec pod |
Viacriadkové štítky GoTo
Na preskočenie na relevantné riadky kódu môžete použiť aj príkazy GoTo. Upravme náš predchádzajúci príklad tak, aby prešiel na rôzne umiestnenia kódu podľa toho, v ktorom roku je:
1234567891011121314151617181920212223242526272829303132 | Podpis GoTo_Statement ()Dim year As Integerrok = 2019Ak rok = 2019 TakChoďte na rok 2019Ak je rok = 2010 PotomChoďte na rok 2020InakChoďte na rok 2021Koniec Akrok2019:„Proces 2022MsgBox „Rok je 2022“GoTo EndProcrok 2020:„Proces 2022MsgBox „Rok je 2022“GoTo EndProcrok 2021:„Proces 2022+MsgBox „Rok je 2022+“EndProc:Koniec pod |
Všimnite si „GoTo EndProc“ pred štítkom každého riadka. Tento riadok kódu sme pridali, aby sa tieto sekcie kódu preskočili, pokiaľ k nim nepristúpi príslušný „GoTo“.
Obsluha chýb GoTo Koniec postupu
Teraz použijeme spracovanie chýb, aby sme v prípade chyby prešli na koniec postupu.
123456789101112 | Sub GoTo_OnError ()Dim i As IntegerPri chybe GoTo EndProci = 5/0MsgBox iEndProc:Koniec pod |
GoTo Opakujte kód
Náš posledný príklad použije príkaz GoTo na zopakovanie nejakého kódu.
Ďalej používame schránku správ Áno / Nie (kliknutím sa dozviete viac) na potvrdenie, že používateľ upozornenie berie na vedomie. Ak kliknú na „Nie“, okno so správou sa bude zobrazovať znova, kým nekliknú na „Áno“ (pozri GIF nižšie).
1234567891011 | Sub GoTo_YesNoMsgBox ()Opakovaná správa:Dim odpoveď ako celé čísloanswer = MsgBox ("UPOZORNENIE: Tento súbor bol otvorený ako súbor iba na čítanie, čo znamená, že všetky zmeny, ktoré vykonáte, sa neuložia, pokiaľ/kým nebudete mať práva na zápis." & _Chr (13) & Chr (13) & "Vyberte položku Súbor, Uložiť ako a uložte kópiu pred prácou v tomto súbore." & vbNewLine & vbNewLine & „Rozumiete?“, vbExclamation + vbYesNo, „UPOZORNENIE!“)If answer = vbNo Then GoTo RepeatMsg 'Opakujte, kým používateľ neklikne na „Áno“Koniec pod |
VBA GoTo a Line Label v Access VBA
Všetky vyššie uvedené príklady fungujú v programe Access VBA úplne rovnako ako v programe Excel VBA.
1234567 | Sub TestGoTo ()Pri chybe GoTo končíDoCmd.OpenForm "FrmClients"Ukončiť subkoniec:MsgBox „Nedá sa otvoriť formulár“Koniec pod |