GoTo -uttalandet i VBA låter dig hoppa till en kodrad.
Skapa först en radetikett var som helst i din kod:
1 | Hoppa: |
Lägg sedan till "GoTo" -uttalandet för att hoppa till radetiketten
1 | GoTo Skip |
GoTo Exempel
Detta exempel testar året. Om året är 2022 eller senare kommer det att gå till etiketten Hoppa över linje. Detta låter dig hoppa över koden om vissa villkor är uppfyllda.
123456789101112 | Sub GoTo_Example ()Dim år som heltalår = 2019Om år> = 2019 Sedan hoppa över'Behandla data för år <2022MsgBox "År är före 2022"Hoppa:Avsluta Sub |
GoTo flera radetiketter
Du kan också använda GoTo -uttalanden för att hoppa till relevanta kodrader. Låt oss justera vårt tidigare exempel för att gå till olika kodplatser baserat på vilket år det är:
1234567891011121314151617181920212223242526272829303132 | Sub GoTo_Statement ()Dim år som heltalår = 2019Om år = 2019 DåGå till år 2019ElseIf år = 2010 DåGå till år 2020AnnanGå till år 2020Avsluta omår2019:'Process 2022MsgBox "År är 2022"GoTo EndProcår 2020:'Process 2022MsgBox "År är 2022"GoTo EndProcår2021:'Bearbeta 2022+MsgBox "År är 2022+"EndProc:Avsluta Sub |
Lägg märke till “GoTo EndProc” före varje radetikett. Vi lade till den här kodraden så att dessa kodavsnitt hoppas över om de inte nås av relevant "GoTo".
GoTo Error Handler Slut på proceduren
Låt oss nu använda Felhantering för att gå till slutet av proceduren om det finns ett fel.
123456789101112 | Sub GoTo_OnError ()Dim i As IntegerVid fel GoTo EndProci = 5/0MsgBox iEndProc:Avsluta Sub |
GoTo Repeat Code
Vårt sista exempel kommer att använda GoTo -uttalandet för att upprepa någon kod.
Nedan använder vi en Ja / Nej -meddelanderuta (klicka för att lära dig mer) för att bekräfta att användaren bekräftar varningen. Om de klickar på "Nej" visas meddelanderutan igen tills de klickar på "Ja" (se GIF nedan).
1234567891011 | Sub GoTo_YesNoMsgBox ()Upprepa meddelande:Dim svar Som heltalanswer = MsgBox ("VARNING! Den här filen öppnades som en skrivskyddad fil, vilket innebär att alla ändringar du gör inte kommer att sparas om/tills du har skrivrättigheter." & _Chr (13) & Chr (13) & "Välj File, SaveAs för att spara en kopia innan du arbetar i den här filen." & vbNewLine & vbNewLine & "Förstår du?", vbExclamation + vbYesNo, "VARNING!")Om svar = vbNo Då går GoTo RepeatMsg 'Repeat tills användaren klickar på "Ja"Avsluta Sub |
VBA Gå till en radetikett i Access VBA
Alla ovanstående exempel fungerar exakt likadant i Access VBA som i Excel VBA.
1234567 | Sub TestGoTo ()Vid fel GoTo endingDoCmd.OpenForm "FrmClients"Avsluta Subslut:MsgBox "Kan inte öppna formulär"Avsluta Sub |