VBA GoTo avaldus - Kuidas kasutada GoTo avaldust VBA-s?

Lang L: none (table-of-contents)

Exceli VBA GoTo avaldus

VBA GoTo lauset kasutatakse juhul, kui koodi käivitamisel ilmneb tõrge, mitte vea kuvamise korral, et järgmise koodirea jätkamiseks tõrketeadet ignoreerida. GOTO-lauseid on kahte tüüpi: üks on valitud töövihiku suvalise töölehe vahemiku valimine ja teine ​​veakäitleja.

VBA eeldatavate vigade ületamiseks on meil funktsioon nimega "GOTO". Selles artiklis näeme mõlemat tüüpi GoTo avaldusi.

2 viisi GoTo avalduse kasutamiseks VBA koodis

# 1 - rakendus. GoTo meetod

Kui soovite minna kõigi avatud töövihikute juurde konkreetse töövihiku või konkreetse töölehe juurde, saame kasutada avaldust Application.GoTo.

Vaatame meetodi Application.GoTo süntaksit

  • (Viide): see pole midagi muud kui määratud lahtriviide. Kui viide pole vaikimisi ette nähtud, viib see teid viimati kasutatud lahtrivahemikku.
  • (Kerige): see on loogiline lause TRUE või FALSE. Kui väärtus on TÕENE, siis kerib see aknast läbi. Kui väärtus on FALSE, siis see ei keri aknast läbi.
Näide

Kui soovite minna konkreetse töölehe konkreetsesse lahtrisse, saame kasutada meetodit Goto. Mul on 3 lehte nimega Jan, Feb ja Mar.

Kui tahan minna jaanilehe lahtrisse C5, kasutan allolevat koodide komplekti.

1. samm: käivitage Exceli makro nimi.

Kood:

Alam GoTo_Example1 () Lõpeta alam

2. samm: käivitage meetod „ Application.GoTo

Kood:

Alam GoTo_Example1 ()

Rakendus. Mine

Lõpeta alam

3. samm: võrdlusargumendis peame määrama töölehe nime ja selles töölehes peame mainima konkreetse lahtri.

Kood:

Sub GoTo_Example1 () Application.Goto Reference: = töölehed ("Jan"). Range ("C5") End Sub

4. samm: mainige kerimist tõena.

Kood:

Sub GoTo_Example1 () Application.Goto Reference: = töölehed ("Jan"). Range ("C5"), kerige: = True End Sub

5. samm: käivitage nüüd see kood, kasutades klahvi F5, või saate seda koodi käitada ka käsitsi, see viib teid määratud lehele ja määratud lahtrisse.

Nüüd muudan kerimisargumendi väärtuseks FALSE ja näen muudatust, millega see kokku puutub.

Sub GoTo_Example1 () Application.Goto Reference: = töölehed ("Jan"). Range ("C5"), kerige: = False End Sub

Kui soovite minna konkreetse töövihiku juurde, peate enne töövihiku nime mainima ka töövihiku nime.

Sub GoTo_Example1 () Application.Goto Reference: = Töövihikud ("Book1.xlsx"). Töölehed ("Jan"). Range ("C5"), Kerige: = False End Sub

# 2 - veakäitleja meetod

Kui konkreetne koodirida tabab viga, peatab VBA ülejäänud koodi täitmise ja kuvab tõrketeate.

Näiteks vaadake allpool olevat koodirida.

Alam GoTo_Example2 () arvutustabelid ("aprill"). Kustutage arvutustabelid. Lisage lõpu alam

Ülaltoodud kood ütleb lehe kustutamise aprillis ja uue lehe lisamise. Aktiivses töövihikus kustutab mõni lehenimi nimega aprill, see kustutatakse või muidu kuvatakse allolev tõrketeate dialoogiboks.

Selle koodi käivitamisel ei olnud minu töövihikul lehte nimega aprill, mistõttu VBA kood ei leidnud lehe nime ja viskab vea. Mõnikord peame seda viga sageli ignoreerima, kui pole lehe nime, mille nimi on aprill, siis peame jätkama teiste koodiridadega.

Selle tõrke kõrvaldamiseks võime tõrkeotsinguna kasutada GoTo meetodit.

Nüüd muudan koodi, kuna viga Sees läheb järgmisele reale.

Sub GoTo_Example2 () On On GoTo NextLine Sheets ("April") tõrge. Kustuta NextLine: Sheets.Add End Sub

Kui käivitate selle, lisab see uue lehe, kuigi lehe nime aprill ei ole.

Avaldus “On Error GoTo NextLine” saab aru, et kui ilmneb mõni tõrge, hüppab see järgmisele reale ja järgmisel real on VBA kood uue lehe lisamiseks.

Asjad, mida meeles pidada

  • Kui soovite tõrke ilmnemisel hüpata järgmisele reale, võite kasutada ka lauset On Error Resume Next VBA.
  • Järgmisena liikumiseks peate olema kindel, et konkreetsel koodireal on oodata viga.
  • Kui selle veatöötlejaga jäetakse koodi oluline rida vahele, ei pruugi teie ülesanne lõpule viia.

Huvitavad Artiklid...