VBA GoTo-uttalelse - Hvordan bruke GoTo Statement i VBA?

Innholdsfortegnelse

Excel VBA GoTo-uttalelse

VBA GoTo- setning brukes når det oppstår en feil mens du kjører koden i stedet for å vise feil for å gjenoppta neste kodelinje ved å ignorere feilmeldingen. Det er to typer GOTO-setninger, det ene er å velge hvilket som helst område på regnearket i den angitte arbeidsboken, og en annen er feilbehandler.

For å overvinne de forventede feilene i VBA, har vi en funksjon kalt "GOTO." Vi vil se begge typer GoTo-uttalelser i denne artikkelen.

2 måter å bruke GoTo-uttalelse i VBA-kode

# 1 - Application.GoTo Method

Hvis du vil gå til den spesifikke arbeidsboken eller det spesifikke regnearket i alle de åpnede arbeidsbøkene, kan vi bruke uttalelsen Application.GoTo-metoden.

La oss se på syntaksen til Application.GoTo-metoden

  • (Referanse): Dette er ingenting annet enn en spesifisert cellehenvisning. Hvis referansen ikke er gitt som standard, tar den deg til det sist brukte celleområdet.
  • (Rull): Dette er en logisk uttalelse av SANT eller FALSK. Hvis verdien er SANT, vil den bla gjennom vinduet. Hvis verdien er FALSK, vil den ikke bla gjennom vinduet.
Eksempel

Hvis du vil gå til en bestemt celle i det spesifikke regnearket, kan vi bruke Goto-metoden. Jeg har 3 ark som heter Jan, Feb og Mar.

Hvis jeg vil gå til celle C5 i Jan-arket, vil jeg bruke kodesettet nedenfor.

Trinn 1: Start excel-makronavnet.

Kode:

Sub GoTo_Example1 () Slutt Sub

Trinn 2: Start metoden “ Application.GoTo

Kode:

Sub GoTo_Example1 ()

Søknad. Gå

Slutt Sub

Trinn 3: I referanseargumentet må vi spesifisere regnearknavnet, og i det regnearket må vi nevne den spesifikke cellen.

Kode:

Sub GoTo_Example1 () Application.Goto Reference: = Regneark ("Jan"). Område ("C5") End Sub

Trinn 4: Nevn bla som SANT.

Kode:

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

Trinn 5: Kjør nå denne koden ved hjelp av F5-tasten, eller du kan også kjøre denne koden manuelt, den tar deg til det angitte arket og den angitte cellen.

Nå vil jeg endre rulleargumentet til FALSE og se endringen den vil møte.

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

Hvis du vil gå til en bestemt arbeidsbok, må du nevne arbeidsboknavnet like før arbeidsboknavnet.

Sub GoTo_Example1 () Application.Goto Reference: = Arbeidsbøker ("Book1.xlsx"). Arbeidsark ("Jan"). Område ("C5"), Rull: = False End Sub

# 2 - Feilhåndteringsmetode

Når den bestemte kodelinjen støter på en feil, slutter VBA å utføre resten av koden og viser feilmeldingen.

Se for eksempel på kodelinjen nedenfor.

Sub GoTo_Example2 () Sheets ("April"). Slett Sheets. Legg til End Sub

Ovennevnte kode sier at du skal slette arket i april og legge til et nytt ark. I den aktive arbeidsboken, hvis det er noe arknavn som heter April, vil den slettes, ellers vil den vise nedenstående feilmeldingsdialogboks.

Når jeg kjører denne koden, hadde arbeidsboken min ikke et ark som heter April, så VBA-koden kunne ikke finne arknavnet og kaster feilen. Noen ganger må vi ignorere denne feilen, fordi det ofte ikke er noe arknavn som heter April, så må vi fortsette med de andre kodelinjene.

For å eliminere denne feilen kan vi bruke GoTo-metoden som en feilbehandler.

Nå vil jeg endre koden når On-feil går til neste linje.

Sub GoTo_Example2 () ved feil GoTo NextLine Sheets ("April"). Slett NextLine: Sheets.Legg til End Sub

Hvis du kjører dette, vil det legge til det nye arket selv om det ikke er noe arknavn som heter April.

Uttalelsen "On Error GoTo NextLine" forstår at hvis det oppstår feil, vil den hoppe til neste linje, og i neste linje er VBA-kode å legge til et nytt ark.

Ting å huske

  • Hvis du vil hoppe til neste linje når feilen oppstår, kan du også bruke On Error Resume Next VBA-setningen.
  • For å hoppe til neste, må du være sikker på at den aktuelle kodelinjen forventes å være en feil.
  • Hvis den viktige linjen i koden hopper over med denne feilbehandleren, kan det hende at oppgaven din ikke blir fullført perfekt.

Interessante artikler...