VBA GoTo-uttalande - Hur använder jag GoTo Statement i VBA?

Innehållsförteckning

Excel VBA GoTo-uttalande

VBA GoTo- uttalande används när ett fel uppstår när koden körs istället för att visa fel för att återuppta nästa kodrad genom att ignorera felmeddelandet. Det finns två typer av GOTO-påståenden, den ena är att välja valfritt intervall i kalkylbladet i den angivna arbetsboken och en annan är felhanteraren.

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

# 1 - Application.GoTo Method

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

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 rullar det 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 vill gå till cell C5 i Jan-arket kommer jag att använda nedanstående uppsättning koder.

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"). Område ("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"). Kalkylblad ("Jan"). Område ("C5"), Bläddra: = 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.

Titta till exempel på kodraden nedan.

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

Ovanstående kod säger att ta bort arket i april och lägga till ett nytt ark. Om det finns något arknamn i april i den aktiva arbetsboken raderas den, 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 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-felet går till nästa rad.

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

Om du kör detta kommer det nya arket att läggas till 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-koden 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 inte slutförts perfekt.

Intressanta artiklar...