VBA GoTo-erklæring - Hvordan bruges GoTo Statement i VBA?

Indholdsfortegnelse

Excel VBA GoTo-erklæring

VBA GoTo- sætning bruges, når der opstår en fejl under kørsel af koden i stedet for at vise en fejl for at genoptage den næste kodelinje ved at ignorere fejlmeddelelsen. Der er to slags GOTO-udsagn, den ene er at vælge et hvilket som helst område af regnearket i den angivne projektmappe, og en anden er fejlhåndtering.

For at overvinde de forventede fejl i VBA har vi en funktion kaldet "GOTO." Vi vil se begge slags GoTo-udsagn i denne artikel.

2 måder at bruge GoTo-erklæring i VBA-kode på

# 1 - Application.GoTo-metode

Hvis du vil gå til den specifikke projektmappe eller det specifikke regneark i alle de åbnede projektmapper, kan vi bruge erklæringen Application.GoTo-metoden.

Lad os se på syntaksen for metoden Application.GoTo

  • (Reference): Dette er intet andet end en specificeret cellereference. Hvis referencen ikke er angivet som standard, fører den dig til det sidst anvendte celleområde.
  • (Rul): Dette er en logisk erklæring om SAND eller FALSK. Hvis værdien er SAND, vil den rulle gennem vinduet. Hvis værdien er FALSK, vil den ikke rulle gennem vinduet.
Eksempel

Hvis du vil gå til en bestemt celle i det specifikke regneark, kan vi bruge Goto-metoden. Jeg har 3 ark med navnet Jan, Feb og Mar.

Hvis jeg vil gå til celle C5 i Jan-arket, bruger jeg nedenstående sæt koder.

Trin 1: Start excel-makroenavnet.

Kode:

Sub GoTo_Example1 () Afslut Sub

Trin 2: Start metoden " Application.GoTo "

Kode:

Under GoTo_Example1 ()

Ansøgning

Afslut sub

Trin 3: I referenceargumentet skal vi specificere regnearknavnet, og i det regneark skal vi nævne den specifikke celle.

Kode:

Sub GoTo_Example1 () Application.Goto Reference: = regneark ("Jan"). Område ("C5") Afslut sub

Trin 4: Nævn rullen som SAND.

Kode:

Sub GoTo_Example1 () Application.Goto Reference: = regneark ("Jan"). Område ("C5"), Scroll: = True End Sub

Trin 5: Kør nu denne kode ved hjælp af F5-tasten, eller du kan også køre denne kode manuelt, det fører dig til det angivne ark og den angivne celle.

Nu vil jeg ændre rulleargumentet til FALSK og se den ændring, den vil støde på.

Sub GoTo_Example1 () Application.Goto Reference: = regneark ("Jan"). Område ("C5"), Scroll: = False End Sub

Hvis du vil gå til en bestemt projektmappe, skal du også nævne projektmappens navn lige før projektmappens navn.

Sub GoTo_Example1 () Application.Goto Reference: = Arbejdsbøger ("Book1.xlsx"). Arbejdsark ("Jan"). Område ("C5"), Rul: = False End Sub

# 2 - Fejlhåndteringsmetode

Når den bestemte kodelinje støder på en fejl, stopper VBA med at udføre resten af ​​koden og viser fejlmeddelelsen.

Se f.eks. Nedenstående kodelinje.

Sub GoTo_Example2 () Sheets ("April"). Slet Sheets. Tilføj End Sub

Ovenstående kode siger at slette arket i april og tilføje et nyt ark. I den aktive projektmappe, hvis der er et arknavn, der hedder April, slettes den, ellers vil den vise nedenstående fejlmeddelelsesdialogboks.

Når jeg kører denne kode, havde min projektmappe ikke et ark, der hedder April, så VBA-koden kunne ikke finde arknavnet og kaster fejlen. Nogle gange er vi nødt til at ignorere denne fejl, for ofte hvis der ikke er noget arknavn, der hedder April, så er vi nødt til at fortsætte med de andre kodelinjer.

For at eliminere denne fejl kan vi bruge GoTo-metoden som en fejlhåndterer.

Nu vil jeg ændre koden, da On-fejl går til næste linje.

Under GoTo_Example2 () Ved fejl GoTo NextLine Sheets ("April"). Slet NextLine: Sheets.Tilføj End Sub

Hvis du kører dette, tilføjer det det nye ark, selvom der ikke er noget arknavn, der hedder April.

Erklæringen "On Error GoTo NextLine" forstår, at hvis der opstår en fejl, springer den til næste linje, og i den næste linje skal VBA-kode tilføje et nyt ark.

Ting at huske

  • Hvis du vil springe til næste linje, når fejlen opstår, kan du også bruge On Error Resume Next VBA-sætningen.
  • For at springe videre, skal du være sikker på, at den bestemte kodelinje forventes at være en fejl.
  • Hvis den vigtige linje i koden springer over med denne fejlhåndterer, er din opgave muligvis ikke afsluttet perfekt.

Interessante artikler...