Spracovanie chýb VBA Sprievodca riešením chýb v programe Excel VBA

Spracovanie chýb Excel VBA

Vo VBA, keď pracujeme s kódmi, môžeme naraziť na veľa rôznych druhov chýb a riešenie týchto chýb je známe ako Manipulácia s chybami, teraz môžu existovať chyby, ktoré sa robia v syntaxi, ktorá vyniká sama, ale keď sa vyskytne chyba ktorá je mimo rozsahu alebo niečo, čo neexistuje, nám program Excel ponúka rovnaké okno, je dôležité vedieť, ktorý kód chyby je pre akú chybu, aby sme mohli identifikovať chybu v kóde.

V programe Excel VBA sa pri vykonávaní ľubovoľnej sady kódov vyskytne určitý druh chýb. Niektoré z týchto chýb sú syntaktické chyby; niektoré sú chyby, ktoré sa nedajú spustiť. Chyba syntaxe je vtedy, keď ju užívateľ urobí, je sama zvýraznená červenou farbou. Keď však dôjde k nejakému inému druhu chyby v čase behu, ako to vyriešime a ako sa dostaneme ďalej, bude to, o čom sa budeme zaoberať v tomto článku.

Okrem chýb syntaxe je potrebné pri vykonávaní ľubovoľnej sady kódov spracovávať aj ďalšie chyby za behu. Najprv mi dovoľte uviesť príklad toho, ako sa vyskytuje iná runtime chyba. Pozrite sa na nasledujúci kód,

Toto je ukážkový kód, keď sa vykoná, vráti to, čo je napísané vo funkcii msgbox. Ale ako vidíme, že v druhom riadku kódu je 4/0, čo z matematického hľadiska nie je možné, takže vráti chybu behu. Vykonajme vyššie uvedený kód a uvidíme chybu, ktorú dostaneme.

To je chyba, ktorú dostávame pri vykonávaní daného kódu. Teraz sa dozvieme, ako sa k tejto chybe dopracúva chyba.

Existujú dva spôsoby riešenia chýb, ktoré sú:

  1. Pri chybe Prejsť na a
  2. Pri chybe Pokračovať ďalej.

Vysvetlenie

Ako sme už vysvetlili, vo VBA sa vyskytuje veľa druhov chýb. Niektoré z nich sú syntaxe a niektoré sú spustené. Chyby syntaxe sú už zvýraznené červenou farbou, napríklad pozrite si snímku obrazovky nižšie,

Zatiaľ čo druhá je chyby v čase behu. Program Excel v zásade urobí nasledujúce tri veci, buď zobrazí chybu, alebo ju ignoruje, alebo zobrazí určitú sadu pokynov. Na vykonávanie takýchto úloh musíme dávať pokyny, ktoré sa nazývajú Error Handling.

Ako spracovávať chyby v kóde VBA?

Príklad č

Pre prvý príklad si vezmime prvý kód, ktorý sme si vzali ako ukážku. Vo vyššie uvedenom príklade sme videli, že kód udáva chybu chodu pri druhej funkcii msgbox.

Po otvorení podfunkcie napíšte nasledujúci kód,

Kód:

Sub sample () On Error Resume Next MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Teraz, keď vykonáme vyššie uvedený kód, vidíme, že riadok kódu, ktorý obsahuje chybu, sa nevykoná. Excel tento riadok preskočí a pokračuje na ďalšom riadku.

Existuje ďalší spôsob, ako chybu spracovať, je vyhlásenie VBA Goto. Ak zistíme chybu, poskytujeme program Excel ako cieľ. Namiesto predchádzajúceho kódu na spracovanie chýb sme vložili, zapísali si nasledujúci kód,

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Dávame programu Excel Az ako cieľ, kam ísť, ak zistí chybu. Teraz za msgbox napíšte ďalší kód, ako je uvedené nižšie,

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 0 MsgBox 4/1 Hotovo: Ukončiť Sub

Teraz musíme definovať cieľové miesto az ako to, čo by malo robiť, keď program Excel zistí chybu v kóde.

Kód:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Hotovo: Exit Sub az: MsgBox "This is an error" & Err.Popis End Sub

Teraz, keď spustíme tento kód, uvidíme zobrazený výsledok.

Toto je prvý výsledok v poli so správami a keďže vieme, že v nasledujúcom riadku nášho kódu máme chybu, pozrime sa na výsledok, ktorý získa program Excel.

Vyššie uvedený popis chyby v kóde nám pomáha presne ukázať, v čom k chybe v našom kóde došlo.

Príklad č

Naučili sme sa, ako zaobchádzať s chybami v našich kódoch. Pozrime sa na ďalší príklad riešenia chýb. Nasledujúci kód považujte za náš druhý príklad.

Máme trochu podobnú chybu z príkladu 1. Chyba je v riadku d = i / b. Teraz budeme tieto chyby riešiť pomocou dvoch vyššie vysvetlených metód.

Po otvorení podfunkcie napíšte nasledujúci kód,

Kód:

Sub Sample2 () Pri chybe Pokračovať ďalej bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Teraz, keď spustíme náš kód, vidíme, že ignoruje druhý riadok a iba zobrazuje hodnotu pre C.

Vyššie uvedená obslužná rutina chýb bola ďalším pokračovaním a teraz použijeme príkaz Prejsť na, v ktorom povieme, že vynikneme cieľovým bodom, do ktorého máme ísť, keď narazí na chybu. Zapíšte si nasledujúci kód,

Kód:

Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Bx je cieľ určený, keď narazí na chybu potom, čo msgbox D zapíše nasledujúci kód,

Kód:

Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub

Teraz musíme definovať cieľový Bx, čo má robiť, keď narazí na chybu, takže si zapíšte nasledujúci kód,

Kód:

Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox „Toto je ďalšia chyba“ a koncový popis chyby

Teraz, keď spustíme kód, môžeme vidieť, že program Excel nám najskôr dá hodnotu pre C.

Teraz v ďalšom kroku nám poskytne výzvu, ktorú sme poskytli, keď sa vyskytne chyba.

Takto riešime bežné chyby za behu v programe Excel VBA.

Na čo treba pamätať

Pri spracovávaní chýb si musíme pamätať niekoľko vecí:

  1. Pri ďalšom pokračovaní chyby sa chyba ignoruje.
  2. Pri chybe GoTo Gives vynikne cieľ, keď narazí na chybu.
  3. Popis slúži na zobrazenie presnej chyby, ktorá sa vyskytla používateľovi.

Zaujímavé články...