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

Exceli VBA GoTo avaldus

VBA GoTo lauset kasutatakse juhul, kui koodi käivitamisel ilmneb tõrge, selle asemel, et kuvada viga, järgmise koodirea taastamiseks tõrketeadet ignoreerides. 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

Selle VBA GoTo Exceli malli saate alla laadida siit - VBA GoTo Exceli mall

# 1 - rakendus. GoTo meetod

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

Vaatame meetodi Application.GoTo süntaksit

  • [Viide]: see pole midagi muud kui määratud lahtriviide. Kui viidet vaikimisi ei pakuta, viib see teid viimati kasutatud lahtrivahemikku.
  • [Kerige]: see on loogiline lause TRUE või FALSE. Kui väärtus on TÕENE, siis kerib see läbi akna, kui väärtus VÄÄR, siis see ei keri akent.
Näide

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

Kui ma tahan minna jaanilehe lahtrisse C5, kasutan allolevat koodikomplekti.

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 klahvi F5 abil või saate selle koodi ka käsitsi käivitada, 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"). Vahemik ("C5"), kerige: = False End Sub 

Kui soovite minna kindla 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 allolevat koodirida.

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

Ülaltoodud kood ütleb, et kustutage leht April ja lisage uus leht. Aktiivses töövihikus kustutab lehe nimega aprill, see kustutatakse või muidu kuvatakse allpool veateate dialoogiboks.

Selle koodi käivitamisel ei olnud minu töövihikul lehte Aprill, mistõttu VBA kood ei leidnud lehe nime ja viskab vea. Mõnikord peame seda viga ignoreerima, sest sageli, kui lehe nime aprilliks pole, 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 

Nüüd, kui seda käivitate, lisab see uue lehe, kuigi lehe nime aprill ei ole.

Avaldus “On Error GoTo NextLine” saab aru, et tõrke ilmnemisel hüpatakse järgmisele reale ja järgmisele reale lisatakse VBA-kood uus leht.

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ärgmisele liikumiseks peate olema kindel, et konkreetsel koodireal on oodata viga.
  • Kui koodi oluline rida selle veatöötlejaga vahele jääb, ei pruugi teie ülesanne olla lõpule viidud.