VBA pri chybe GoTo - Typy vyhlásení o chybe vo VBA

Excel VBA pri chybe GoTo

Chyby sú neoddeliteľnou súčasťou každého kódovacieho jazyka a makrá VBA sa od toho nelíšia. Podľa môjho názoru je zistenie, prečo k chybe došlo, 90% vykonanej práce a 10% spočíva v tom, ako túto chybu opraviť. V každom kódovacom jazyku používajú programátory svoj vlastný spôsob riešenia chýb v kódovaní, takže aj my používame kódovanie VBA. Častokrát musíme chybu ignorovať, alebo často môžeme chcieť ísť na konkrétne veci, keď sa chyba vyskytne. „Pri chybe“ je vyhlásenie, ktoré musíme použiť vo VBA na spracovanie chýb.

Toto vyhlásenie má tri typy vyhlásení a zoznam je uvedený nižšie.

  1. Pri chybe Choď na 0
  2. Pri chybe - prejsť (štítok)
  3. Pri chybe Pokračovať ďalej

V tomto článku uvidíme, ako sa tieto tri príkazy používajú v kódovaní VBA na zvládnutie akýchkoľvek druhov chýb.

Ako používať VBA pri chybových hláseniach?

# 1 - Pri chybe Pokračovať ďalej

Ako hovorí samotné vyhlásenie, „Pri chybe Pokračovať ďalej“ znamená, kedykoľvek sa v kóde vyskytne chyba, „pokračovať“ v ďalšom riadku kódu ignorovaním kódu chybového riadku. Teraz sa pozrite na nižšie uvedený kód.

V nižšie uvedenom kóde som spomenul názvy pracovných hárkov a požiadal som o zadanie hodnoty v prvej bunke ako „Testovanie chýb“.

Kód:

Sub On_Error_Resume_Next () Worksheets ("Ws 1"). Select Range ("A1"). Value = "Error Testing" Worksheets ("Ws 2"). Select Range ("A1"). Value = "Error Testing" Worksheets ( "Ws 3"). Vyberte rozsah ("A1"). Hodnota = "Testovanie chýb" Pracovné listy ("Ws 4"). Vyberte rozsah ("A1"). Hodnota = "Testovanie chýb" End Sub

Teraz mám vo svojom zošite nižšie uvedené pracovné listy.

  • Spustím kód a uvidím, čo sa stane.
  • Dostali sme chybu „Subscript Out of Range“, kliknite na „Debug“ a uvidíte, v ktorom riadku sa chyba vyskytla.
  • Takže v riadku „Pracovné listy („ Ws 3 “). Vyberte„ sme dostali chybu. Je to tak preto, lebo v našom zošite nie je žiadny pracovný hárok s názvom „Ws 3“, takže sa vyskytla chyba.

V takýchto prípadoch možno budeme chcieť ignorovať chybu a pokračovať v spustení kódu na ďalší riadok. Toto je miesto, kde sa na obrázku objaví náš obslužný program chýb „Pri chybe pokračovať ďalej“.

  • Všetko, čo musíme urobiť, je pridať na začiatok makra riadok „On Error Resume Next“.

Teraz vykonajte tento kód a nezobrazí sa žiadne chybové hlásenie, pretože vždy, keď sa v kóde vyskytne chyba, bude ju ignorovať a bude pokračovať na ďalší riadok kódu.

# 2 - Pri chybe GoTo 0

Toto nie je obslužná rutina chýb, skôr aktivátor chybových správ, keď chybové hlásenie deaktivujeme pomocou príkazu „Pri chybe pokračovať ďalej“.

Ak použijete príkaz „Pokračovať ďalej“, makrá VBA začnú ignorovať všetky chyby, ku ktorým dôjde, a pokračujú v ďalšom riadku kódov. Ale nechceme, aby sa to stalo stále, pretože niektoré chyby musíme zámerne ignorovať, iné potrebujeme upozornenie.

Ak ktorákoľvek konkrétna sada kódu spôsobí chybu v tomto bloku kódu, iba my musíme ignorovať chyby v iných častiach kódu. Nechceme chybu ignorovať.

  • Pozrite sa na nasledujúci obrázok, kde je uvedené použitie výrazu „On Error GoTo 0“.

Takže teraz budú chyby ignorované, kým kód nenájde aktivátora upozornenia na chybu „On Error GoTo 0“, akonáhle tento riadok kódu vykoná makra späť do normálu a začne hádzať chybové správy ako obvykle.

# 3 - Pri chybe štítok GoTo

Videli sme, ako ignorovať chybu a ako povoliť spätné hlásenie chyby. Teraz pomocou tejto metódy môžeme prejsť na konkrétny riadok kódu.

V tejto metóde „Štítok“ znamená, že tomuto štítku môžeme dať akýkoľvek názov a rovnaký štítok by mal byť uvedený aj v požadovanom riadku kódu.

Napríklad sa pozrite na rovnaký kód z vyššie uvedeného príkladu.

Teraz vykonajme kód po riadku stlačením funkčného klávesu F8.

Teraz bude makro čítať vyhlásenie o chybe chyby; stlačte kláves F8 a vykonajte prvé dva kódy pracovného hárka.

Teraz sa makro chystá vykonať tretí kód pracovného hárka, ktorý sa v zošite nenachádza, stlačte kláves F8 a uvidíte, čo sa stane.

Pretože makro narazilo na chybu v nasledujúcom riadku kódu, preskočilo na štítok obslužnej rutiny chýb „ErrorMessage“, ktorý bol popísaný prostredníctvom výrazu „On Error GoTo (Label)“.

Okno so správou teraz zobrazí správu ako „Nastala chyba a ukončenie makra“.

Na čo treba pamätať

  • Vba On Error GoTo 0 opäť povolí chybové hlásenie, takže ho nezabudnite pridať po zadaní obslužného programu chyby.
  • Musíte si byť úplne istí, v ktorej časti kódu chcete chybu ignorovať, preto priložte obslužný program chyby iba pre tento blok kódu.

Zaujímavé články...