Izjava GoTo v VBA vam omogoča skok na vrstico kode.
Najprej ustvarite oznako vrstice kjer koli v kodi:
1 | Preskoči: |
Nato dodajte izjavi »GoTo«, da skočite na oznako vrstice
1 | Pojdi preskoči |
Pojdi na primere
Ta primer preizkuša leto. Če je leto 2022 ali pozneje, bo oznaka vrstice preskočila. To vam omogoča, da preskočite kodo, če so izpolnjeni določeni pogoji.
123456789101112 | Sub GoTo_Example ()Zatemnjeno leto kot celo številoleto = 2019Če je leto> = 2019, potem pojdite na Preskoči„Podatki o procesih za leta <2022MsgBox "Leto je pred letom 2022"Preskoči:End Sub |
Pojdi do oznak z več vrsticami
Izjave GoTo lahko uporabite tudi za skok na ustrezne vrstice kode. Prilagodimo naš prejšnji primer, da se premaknemo na različne kodne lokacije glede na to, za katero leto gre:
1234567891011121314151617181920212223242526272829303132 | Sub GoTo_Statement ()Zatemnjeno leto kot celo številoleto = 2019Če je leto = 2019, potemGremo v leto 2019Če je leto = 2010, potemGremo na leto 2020Sicer paGremo na leto 2021Konec Čeleto 2019:„Postopek 2022MsgBox "Leto je 2022"Pojdi na EndProcleto 2020:„Postopek 2022MsgBox "Leto je 2022"Pojdi na EndProcleto 2021:„Postopek 2022+MsgBox "Leto je 2022+"EndProc:End Sub |
Pred vsako oznako vrstice opazite »GoTo EndProc«. To vrstico kode smo dodali tako, da so ti odseki kode preskočeni, razen če do njih dostopa ustrezni »GoTo«.
GoTo Error Handler Konec postopka
Zdaj pa uporabimo Error Handling za konec postopka, če pride do napake.
123456789101112 | Sub GoTo_OnError ()Dim i kot celo številoNapaka GoTo EndProci = 5/0MsgBox iEndProc:End Sub |
Pojdi na ponovitev kode
Naš zadnji primer bo uporabil GoTo Statement za ponovitev neke kode.
Spodaj uporabljamo sporočilo Da / Ne (kliknite, če želite izvedeti več), da potrdimo, da uporabnik opozorilo priznava. Če kliknejo 'Ne', se bo sporočilo znova prikazalo, dokler ne kliknejo 'Da' (glej spodaj GIF).
1234567891011 | Sub GoTo_YesNoMsgBox ()Ponovi sporočilo:Zatemnjen odgovor kot celo številoanswer = MsgBox ("OPOZORILO: Ta datoteka je bila odprta kot datoteka samo za branje, kar pomeni, da vse spremembe, ki jih naredite, ne bodo shranjene, razen če/dokler nimate pravic za dostop do pisanja." & _Chr (13) & Chr (13) & "Izberite File, SaveAs, da shranite kopijo, preden začnete delati v tej datoteki." & vbNewLine & vbNewLine & "Ali razumete?", vbExclamation + vbDaNe, "OPOZORILO!")Če je odgovor = vbNe Potem pojdi na PonoviMsg "Ponovi, dokler uporabnik ne klikne" Da "End Sub |
VBA Pojdi na linijsko oznako v Access VBA
Vsi zgornji primeri delujejo popolnoma enako v Access VBA kot v Excelu VBA.
1234567 | Sub TestGoTo ()Napaka GoTo se končaDoCmd.OpenForm "FrmClients"Zapri podzaključek:MsgBox "Obrazca ni mogoče odpreti"End Sub |