VBA GoTo-uttalande

Excel VBA GoTo-uttalande

VBA GoTo- uttalande används när ett fel inträffar när koden körs istället för att visa fel för att återuppta nästa radrad genom att ignorera felmeddelandet. Det finns två typer av GOTO-uttalanden, en är att välja valfritt intervall i kalkylbladet i den angivna arbetsboken och en annan är felhanterare.

För att övervinna de förväntade felen i VBA har vi en funktion som heter “GOTO”. Vi kommer att se båda typerna av GoTo-uttalanden i den här artikeln.

2 sätt att använda GoTo-uttalande i VBA-kod

Du kan ladda ner denna VBA GoTo Excel-mall här - VBA GoTo Excel-mall

# 1 - Application.GoTo Method

Om du vill gå till den specifika arbetsboken eller specifika kalkylbladet i alla öppnade arbetsböcker kan vi använda uttalandet Application.GoTo-metoden.

Låt oss titta på syntaxen för Application.GoTo-metoden

  • [Referens]: Detta är inget annat än en specificerad cellreferens. Om referensen inte tillhandahålls som standard tar den dig till det senast använda cellområdet.
  • [Scroll]: Detta är ett logiskt uttalande av SANT eller FALSK. Om värdet är SANT kommer det att rulla genom fönstret, om värdet om FALSE kommer det inte att rulla genom fönstret.
Exempel

Om du vill gå till en specifik cell i det specifika kalkylbladet kan vi använda Goto-metoden. Jag har tre ark som heter Jan, Feb och Mar.

Om jag nu vill gå till cell C5 i Jan-ark använder jag nedanstående uppsättning kod.

Steg 1: Starta Excel-makronamnet.

Koda:

 Sub GoTo_Example1 () Avsluta Sub 

Steg 2: Starta metoden " Application.GoTo "

Koda:

Sub GoTo_Example1 ()

Application.Goto

Avsluta sub

Steg 3: I referensargumentet måste vi ange kalkylbladets namn och i det kalkylbladet måste vi nämna den specifika cellen.

Koda:

 Sub GoTo_Example1 () Application.Goto Reference: = Kalkylblad ("Jan"). Range ("C5") End Sub 

Steg 4: Nämna rullningen som SANT.

Koda:

 Sub GoTo_Example1 () Application.Goto Reference: = Kalkylblad ("Jan"). Range ("C5"), Scroll: = True End Sub 

Steg 5: Kör nu den här koden med F5-tangenten eller så kan du också köra den här koden manuellt, den tar dig till det angivna arket och den angivna cellen.

Nu kommer jag att ändra rullningsargumentet till FALSE och se den förändring det kommer att stöta på.

 Sub GoTo_Example1 () Application.Goto Reference: = Kalkylblad ("Jan"). Range ("C5"), Scroll: = False End Sub 

Om du vill gå till en viss arbetsbok måste du också nämna arbetsbokens namn före arbetsbokens namn.

 Sub GoTo_Example1 () Application.Goto Reference: = Arbetsböcker ("Book1.xlsx"). Arbetsblad ("Jan"). Område ("C5"), Scroll: = False End Sub 

# 2 - Felhanteringsmetod

När den specifika kodraden stöter på ett fel slutar VBA att köra resten av koden och visar felmeddelandet.

Se till exempel nedanstående kodrad.

 Sub GoTo_Example2 () Sheets ("April"). Ta bort Sheets. Lägg till End Sub 

Ovanstående kod säger att radera arket i april och lägga till ett nytt ark. Om det finns något arknamn i april i den aktiva arbetsboken kommer den att raderas eller annars visas dialogrutan felmeddelande nedan.

När jag kör den här koden hade min arbetsbok inte ett ark som heter April, så VBA-koden kunde inte hitta arkets namn och kastar felet. Ibland måste vi ignorera det här felet, för ofta om det inte finns något arknamn som heter April måste vi fortsätta med de andra kodraderna.

För att eliminera detta fel kan vi använda GoTo-metoden som en felhanterare.

Nu kommer jag att ändra koden när On error går till nästa rad

 Under GoTo_Example2 () vid fel GoTo NextLine Sheets ("April"). Ta bort NextLine: Sheets.Add End Sub 

Nu om du kör det kommer det att lägga till det nya arket trots att det inte finns något arknamn som heter April.

Uttalandet "On Error GoTo NextLine" förstår att om något fel inträffar kommer det att hoppa till nästa rad och i nästa rad är VBA-kod att lägga till ett nytt ark.

Saker att komma ihåg

  • Om du vill hoppa till nästa rad när felet inträffar kan du också använda On Error Resume Next VBA-satsen.
  • För att hoppa till nästa måste du vara säker på att just den här kodraden förväntas vara ett fel.
  • Om den viktiga raden i koden hoppar över med den här felhanteraren kanske din uppgift kanske inte är perfekt.