VBA GoTo a Line Label

Declarația GoTo din VBA vă permite să treceți la o linie de cod.

Mai întâi creați o etichetă de linie oriunde în cod:

1 Ocolire:

Apoi adăugați la declarația „GoTo” pentru a trece la eticheta de linie

1 GoTo Skip

Exemple GoTo

Acest exemplu testează anul. Dacă anul este 2022 sau mai târziu, va merge la eticheta Skip line. Acest lucru vă permite să treceți peste cod dacă sunt îndeplinite anumite condiții.

123456789101112 Sub GoTo_Example ()Anul slab ca întregan = 2019Dacă anul> = 2019, atunci GoTo Skip„Date de proces pentru ani <2022MsgBox „Anul este înainte de 2022”Ocolire:Sfârșitul Sub

Etichete GoTo Multiple Line

De asemenea, puteți utiliza instrucțiunile GoTo pentru a trece la liniile de cod relevante. Să ajustăm exemplul nostru anterior pentru a merge la diferite locații de coduri în funcție de anul în care este:

1234567891011121314151617181920212223242526272829303132 Sub GoTo_Statement ()Anul slab ca întregan = 2019Dacă anul = 2019 AtunciAnul GoTo2019ElseIf year = 2010 AtunciGoTo anul 2020AltfelAnul GoTo2021End Ifan2019:„Procesul 2022MsgBox „Anul este 2022”GoTo EndProcan2020:„Procesul 2022MsgBox „Anul este 2022”GoTo EndProcanul2021:„Proces 2022+MsgBox „Anul este 2022+”EndProc:Sfârșitul Sub

Observați „GoTo EndProc” înainte de fiecare etichetă de linie. Am adăugat această linie de cod, astfel încât secțiunile de cod să fie omise, cu excepția cazului în care sunt accesate de „GoTo” relevant.

Gestionarea erorilor GoTo Sfârșitul procedurii

Acum, să folosim Gestionarea erorilor pentru a merge la sfârșitul procedurii dacă există o eroare.

123456789101112 Sub GoTo_OnError ()Dim i IntegerLa eroare GoTo EndProci = 5/0MsgBox iEndProc:Sfârșitul Sub

Repetați codul GoTo

Ultimul nostru exemplu va folosi Declarația GoTo pentru a repeta un cod.

Mai jos utilizăm o cutie de mesaje Da / Nu (Faceți clic pentru a afla mai multe) pentru a confirma că utilizatorul acceptă avertismentul. Dacă dau clic pe „Nu”, caseta de mesaj va fi afișată din nou până când vor da clic pe „Da” (vezi GIF mai jos).

1234567891011 Sub GoTo_YesNoMsgBox ()RepeatMsg:Răspuns slab Ca întreganswer = MsgBox ("AVERTISMENT: Acest fișier a fost deschis ca fișier numai în citire, adică orice modificare pe care o faceți nu va fi salvată decât dacă / până când nu aveți drepturi de acces la scriere." & _Chr (13) & Chr (13) & "Selectați fișier, Salvați ca pentru a salva o copie înainte de a lucra în acest fișier." & vbNewLine & vbNewLine & "Înțelegi?", vbExclamare + vbDa Nu, "AVERTISMENT!")If answer = vbNo Atunci GoTo RepeatMsg 'Repeat până când utilizatorul dă clic pe „Da”Sfârșitul Sub

VBA GoTo a Line Label in Access VBA

Toate exemplele de mai sus funcționează exact la fel în Access VBA ca în Excel VBA.

1234567 Sub TestGoTo ()La sfârșitul Eroare GoToDoCmd.OpenForm "FrmClients"Ieșiți din Subfinal:MsgBox „Nu se poate deschide formularul”Sfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave