VBA GoTo paziņojums | Kā lietot GoTo Statement VBA?

Excel VBA GoTo paziņojums

VBA GoTo paziņojums tiek izmantots, ja, izpildot kodu, rodas kļūda, nevis tiek parādīta kļūda, lai atsāktu nākamo koda rindu, ignorējot kļūdas ziņojumu. Ir divu veidu GOTO paziņojumi: viens ir atlasīt jebkuru darblapas diapazonu norādītajā darbgrāmatā, bet otrs ir kļūdu apstrādātājs.

Lai pārvarētu paredzamās kļūdas VBA, mums ir funkcija ar nosaukumu “GOTO”. Šajā rakstā mēs redzēsim abu veidu GoTo paziņojumus.

2 veidi, kā izmantot GoTo paziņojumu VBA kodā

Šo VBA GoTo Excel veidni varat lejupielādēt šeit - VBA GoTo Excel veidne

# 1 - pieteikums. GoTo metode

Ja vēlaties pāriet uz konkrēto darbgrāmatu vai konkrētu darblapu visās atvērtajās darbgrāmatās, mēs varam izmantot metodi Application.GoTo.

Apskatīsim Application.GoTo sintaksi

  • [Atsauce]: Tas nav nekas cits kā norādīta šūnas atsauce. Ja atsauce pēc noklusējuma nav norādīta, tā novirzīs jūs uz pēdējo izmantoto šūnu diapazonu.
  • [Ritināt]: Šis loģiskais apgalvojums ir PATIESA vai PATIESA. Ja vērtība ir PATIESA, tā ritinās pa logu, ja vērtība, ja FALSE, tā netiks ritināta pa logu.
Piemērs

Ja vēlaties doties uz noteiktu šūnu konkrētajā darblapā, mēs varam izmantot Goto metodi. Man ir 3 loksnes ar nosaukumu Jan, Feb un Mar.

Tagad, ja es gribu doties uz šūnas C5 janvāra lapā, es izmantošu tālāk norādīto kodu kopu.

1. darbība: sāciet Excel makro nosaukumu.

Kods:

 Sub GoTo_Example1 () Beigas Sub 

2. darbība: sāciet metodi “ Application.GoTo

Kods:

Apakš GoTo_Example1 ()

Pieteikums. Pāriet

Beigu apakš

3. solis: Atsauces argumentā mums jānorāda darblapas nosaukums, un šajā darblapā jāpiemin konkrētā šūna.

Kods:

 Sub GoTo_Example1 () Application.Goto Reference: = Darblapas ("Jan"). Diapazons ("C5") Beigas Sub 

4. darbība. Ritiniet kā TRUE.

Kods:

 Sub GoTo_Example1 () Application.Goto Reference: = darblapas ("Jan"). Diapazons ("C5"), ritiniet: = True End Sub 

5. solis: Tagad palaidiet šo kodu, izmantojot F5 taustiņu, vai arī jūs varat palaist šo kodu manuāli, tas jūs aizvedīs uz norādīto lapu un norādīto šūnu.

Tagad es mainīšu ritināšanas argumentu uz FALSE un redzēšu izmaiņas, ar kurām tas saskarsies.

 Sub GoTo_Example1 () Application.Goto Reference: = darblapas ("Jan"). Diapazons ("C5"), ritiniet: = False End Sub 

Ja vēlaties pāriet uz konkrētu darbgrāmatu, pirms darbgrāmatas nosaukuma jāpiemin arī darbgrāmatas nosaukums.

 Sub GoTo_Example1 () Application.Goto atsauce: = Darbgrāmatas ("Book1.xlsx"). Darblapas ("Jan"). Diapazons ("C5"), ritiniet: = False End Sub 

# 2 - Kļūdu apstrādātāja metode

Kad konkrētā koda rindā rodas kļūda, VBA pārtrauc izpildīt pārējo kodu un parāda kļūdas ziņojumu.

Piemēram, apskatiet zemāk esošo koda rindu.

 Sub GoTo_Example2 () Sheets ("April"). Dzēst Sheets.Add End Sub 

Iepriekš minētais kods saka, ka jāizdzēš aprīļa lapa un jāpievieno jauna lapa. Aktīvajā darbgrāmatā, ja ir kāds lapas nosaukums aprīlis, tas tiks izdzēsts vai arī tas parādīs zemāk redzamo kļūdas ziņojumu dialoglodziņu.

Kad palaidu šo kodu, manā darbgrāmatā nebija lapas ar nosaukumu Aprīlis, tāpēc VBA kods nevarēja atrast lapas nosaukumu un izmeta kļūdu. Dažreiz mums ir jāignorē šī kļūda, jo bieži vien, ja nav lapas nosaukuma Aprīlis, mums jāturpina citas koda rindas.

Lai novērstu šo kļūdu, mēs varam izmantot GoTo metodi kā kļūdu apstrādātāju.

Tagad es modificēšu kodu, jo On kļūda pāriet uz nākamo rindu

 Sub GoTo_Example2 () Kļūdā GoTo NextLine Sheets ("Aprīlis"). Dzēst NextLine: Sheets.Add End Sub 

Tagad, ja jūs to palaižat, tā pievienos jauno lapu, pat ja nav lapas nosaukuma Aprīlis.

Paziņojums “On Error GoTo NextLine” saprot, ka, ja rodas kāda kļūda, tas pāriet uz nākamo rindu un nākamajā rindā VBA kods ir jāpievieno jauna lapa.

Atceramās lietas

  • Ja vēlaties pāriet uz nākamo rindu, kad rodas kļūda, varat izmantot arī paziņojumu On Error Resume Next VBA.
  • Lai pārietu uz nākamo, jums jābūt pārliecinātam, ka konkrētajā koda rindiņā ir paredzēta kļūda.
  • Ja svarīgā koda rindiņa tiek izlaista ar šo kļūdu apstrādātāju, iespējams, jūsu uzdevums nav pabeigts perfekti.

$config[zx-auto] not found$config[zx-overlay] not found