Declarație VBA GoTo - Cum se folosește Declarația GoTo în VBA?

Declarație Excel VBA GoTo

Instrucțiunea VBA GoTo este utilizată atunci când apare o eroare în timpul rulării codului, mai degrabă decât afișarea erorii pentru a relua următoarea linie de cod ignorând mesajul de eroare. Există două tipuri de instrucțiuni GOTO, una este selectarea oricărui interval al foii de lucru din registrul de lucru specificat, iar alta este tratarea erorilor.

Pentru a depăși erorile anticipate în VBA, avem o funcție numită „GOTO”. Vom vedea ambele tipuri de declarații GoTo în acest articol.

2 moduri de utilizare a declarației GoTo în codul VBA

# 1 - Metodă Application.GoTo

Dacă doriți să accesați registrul de lucru specific sau foaia de lucru specifică din toate registrele de lucru deschise, putem utiliza declarația Metoda Application.GoTo.

Să ne uităm la sintaxa metodei Application.GoTo

  • (Referință): Aceasta nu este altceva decât o referință de celulă specificată. Dacă referința nu este furnizată în mod implicit, vă va duce la ultima gamă de celule utilizate.
  • (Derulare): Aceasta este o afirmație logică de ADEVĂRAT sau FALS. Dacă valoarea este ADEVĂRATĂ, aceasta va derula prin fereastră. Dacă valoarea este FALSĂ, aceasta nu va derula prin fereastră.
Exemplu

Dacă doriți să mergeți la o anumită celulă din foaia de lucru specifică, putem folosi metoda Goto. Am 3 foi numite ianuarie, februarie și mar.

Dacă vreau să merg la celula C5 din foaia Jan, voi folosi setul de coduri de mai jos.

Pasul 1: Porniți numele macro-ului Excel.

Cod:

Sub GoTo_Example1 () End Sub

Pasul 2: Porniți metoda „ Application.GoTo

Cod:

Sub GoTo_Example1 ()

Aplicație. Mergeți

Sfârșitul Sub

Pasul 3: În argumentul de referință, trebuie să specificăm numele foii de lucru, iar în foaia de lucru respectivă, trebuie să menționăm celula specifică.

Cod:

Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") End Sub

Pasul 4: Menționați scroll-ul ca fiind ADEVĂRAT.

Cod:

Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = True End Sub

Pasul 5: Rulați acum acest cod folosind tasta F5 sau puteți rula manual acest cod, vă va duce la foaia specificată și la celula specificată.

Acum voi schimba argumentul de defilare la FALS și voi vedea schimbarea pe care o va întâlni.

Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub

Dacă doriți să accesați un anumit registru de lucru, atunci trebuie să menționați numele registrului de lucru și înainte de numele registrului de lucru.

Sub GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub

# 2 - Metoda de gestionare a erorilor

Când linia specială de cod întâmpină o eroare, atunci VBA încetează să execute restul codului și afișează mesajul de eroare.

De exemplu, uitați-vă la linia de cod de mai jos.

Sub GoTo_Example2 () Sheets ("April"). Ștergeți Sheets.Add End End

Codul de mai sus spune să ștergeți foaia în aprilie și să adăugați o foaie nouă. În registrul de lucru activ, dacă există un nume de foaie numit aprilie, acesta va fi șters, sau va afișa caseta de dialog de mai jos a mesajului de eroare.

Când rulez acest cod, registrul meu de lucru nu avea o foaie numită aprilie, deci codul VBA nu a putut găsi numele foii și aruncă eroarea. Uneori trebuie să ignorăm această eroare din cauza uneori, dacă nu există un nume de foaie numit Aprilie, atunci trebuie să continuăm cu celelalte linii de cod.

Pentru a elimina această eroare, putem folosi metoda GoTo ca un gestionar de erori.

Acum voi modifica codul pe măsură ce eroarea On trece la următoarea linie.

Sub GoTo_Example2 () On Error GoTo NextLine Sheets ("April"). Ștergeți NextLine: Sheets.Add End Sub

Dacă rulați acest lucru, acesta va adăuga noua foaie, chiar dacă nu există un nume de foaie numit aprilie.

Afirmația „On Error GoTo NextLine” înțelege că, dacă apare o eroare, va trece la următoarea linie, iar în linia următoare, codul VBA va adăuga o foaie nouă.

Lucruri de amintit

  • Dacă doriți să treceți la următoarea linie atunci când apare eroarea, puteți utiliza și instrucțiunea On Error Resume Next VBA.
  • Pentru a trece la următorul, trebuie să vă asigurați că linia respectivă de cod se așteaptă ca o eroare.
  • Dacă linia importantă a codului omite cu acest gestionar de erori, este posibil ca sarcina dvs. să nu fie terminată perfect.

Articole interesante...