Obslužné programy chýb pre makrá Excelu

Obslužné programy chýb vám umožňujú určiť, čo sa stane, keď sa vyskytne chyba počas spustenia kódu makra programu Excel. Obslužné nástroje chýb sú riadky podobné týmto:

Pri chybe Prejsť na MyError

Bez obsluhy chýb každá chyba, ktorá sa vyskytne vo vašom kóde, vyzve Excel, aby aktivoval menej ako užitočné chybové hlásenie, ktoré zvyčajne nebude jasne vyjadrovať, čo sa stalo. Pomocou obslužných programov chýb sa však môžete rozhodnúť ignorovať chybu alebo elegantne ukončiť kód s vlastnou správou pre používateľa.

Existujú tri typy vyhlásení o chybe:

  • On Error GoTo SomeLabel: Kód preskočí na zadaný štítok.

  • On Error Resume Next: Chyba sa ignoruje a kód sa obnoví.

  • Pri chybe GoTo 0: VBA sa resetuje na normálne správanie pri kontrole chýb.

On Error GoTo SomeLabel

Niekedy chyba vo vašom kóde znamená, že musíte postup elegantne ukončiť a dať svojim používateľom jasnú správu. V týchto situáciách môžete pomocou príkazu On Error GoTo povedať Excelu, aby preskočil na určitý riadok kódu.

Napríklad v nasledujúcom malom kúsku kódu poviete Excelu, aby vydelil hodnotu v bunke A1 hodnotou v bunke A2, a potom umiestnite odpoveď do bunky A3. Jednoduché. Čo sa môže pokaziť?

Pod makro1()
Rozsah("A3").Hodnota = Rozsah("A1").Hodnota / Rozsah("A2").Hodnota
End Sub

Ako sa ukazuje, môžu sa pokaziť dve hlavné veci. Ak bunka A2 obsahuje 0, dostanete chybu delenia 0. Ak bunka A2 obsahuje nenumerickú hodnotu, zobrazí sa chyba nesúladu typu.

Ak sa chcete vyhnúť nepríjemnej chybovej správe, môžete Excelu povedať, že Pri chybe chcete, aby spustenie kódu preskočilo na štítok s názvom MyExit.

V nasledujúcom kóde za štítkom MyExit nasleduje správa pre používateľa, ktorá namiesto škaredého chybového hlásenia poskytuje priateľskú radu. Všimnite si tiež riadok Exit Sub pred štítkom MyExit, ktorý zaisťuje, že kód sa jednoducho ukončí, ak sa nevyskytne žiadna chyba:

Pod makro1()
Pri chybe GoTo MyExit
Rozsah("A3").Hodnota = Rozsah("A1").Hodnota / Rozsah("A2").Hodnota
Ukončiť Sub
MyExit:
MsgBox "Použite prosím platné nenulové čísla"
End Sub

Pri chybe Pokračujte ďalej

Niekedy chcete, aby Excel ignoroval chybu a jednoducho pokračoval v spúšťaní kódu. V týchto situáciách môžete použiť príkaz On Error Resume Next.

Napríklad nasledujúci kus kódu je určený na odstránenie súboru s názvom GhostFile.exe z adresára C:Temp. Po odstránení súboru sa používateľovi zobrazí pekné okno so správou, že súbor je preč:

Pod makro1()
Zabiť "C: TempGhostFile.exe"
MsgBox "Súbor bol odstránený."
End Sub

Kód funguje skvele, ak skutočne existuje súbor na odstránenie. Ak však z nejakého dôvodu súbor s názvom GhostFile.exe na jednotke C:Temp neexistuje, zobrazí sa chyba.

V tomto prípade je vám jedno, či tam súbor nie je, pretože ste ho aj tak chceli vymazať. Takže môžete jednoducho ignorovať chybu a pokračovať v kóde.

Pomocou príkazu On Error Resume Next sa kód spustí bez ohľadu na to, či cieľový súbor existuje alebo nie:

Pod makro1()
Pri chybe Pokračujte ďalej
Zabiť "C: TempGhostFile.exe"
MsgBox "Súbor bol odstránený."
End Sub

Pri chybe Prejsť na 0

Pri použití určitých chybových vyhlásení môže byť potrebné resetovať správanie VBA pri kontrole chýb. Aby ste pochopili, čo to znamená, pozrite si nasledujúci príklad.

Tu najprv chcete odstrániť súbor s názvom GhostFile.exe z adresára C: Temp. Aby ste sa vyhli chybám, ktoré môžu vyplývať zo skutočnosti, že cieľový súbor neexistuje, použite príkaz On Error Resume Next. Potom sa pokúsite urobiť nejakú podozrivú matematiku vydelením 100/Mike:

Pod makro1()
Pri chybe Pokračujte ďalej
Zabiť "C: TempGhostFile.exe"
Rozsah ("A3"). Hodnota = 100 / "Mike"
End Sub

Spustenie tohto kusu kódu by malo vygenerovať chybu v dôsledku nejasnej matematiky, ale nevyvoláva to. prečo? Pretože posledná inštrukcia, ktorú ste dali kódu, bola On Error Resume Next. Akákoľvek chyba, ktorá sa vyskytne po tomto riadku, bude účinne ignorovaná.

Na odstránenie tohto problému môžete použiť príkaz On Error GoTo 0 na obnovenie normálneho správania pri kontrole chýb:

Pod makro1()
Pri chybe Pokračujte ďalej
Zabiť "C: TempGhostFile.exe"
Pri chybe Prejsť na 0
Rozsah ("A3"). Hodnota = 100 / "Mike"
End Sub

Tento kód bude ignorovať chyby až do príkazu On Error GoTo 0. Po tomto vyhlásení sa kód vráti k normálnej kontrole chýb a spustí očakávanú chybu vyplývajúcu z fuzzy matematiky.


Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime len na čítanie v systéme Windows Microsoft Word otvára súbory v režime len na čítanie, takže ich nie je možné upravovať? Nebojte sa, metódy sú uvedené nižšie

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť chyby pri tlači nesprávnych dokumentov Microsoft Word Chyby pri tlači dokumentov Word so zmeneným typom písma, chaotickými odsekmi, chýbajúcim textom alebo strateným obsahom sú pomerne časté. Avšak, nie

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Ak ste použili pero alebo zvýrazňovač na kreslenie na powerpointové snímky počas prezentácie, môžete si kresby uložiť pre ďalšiu prezentáciu alebo ich vymazať, aby ste pri ďalšom zobrazení začali s čistými powerpointovými snímkami. Ak chcete vymazať kresby perom a zvýrazňovačom, postupujte podľa týchto pokynov: Vymazanie riadkov jedna na […]

Obsah knižnice štýlov v SharePointe 2010

Obsah knižnice štýlov v SharePointe 2010

Knižnica štýlov obsahuje súbory CSS, súbory XSL (Extensible Stylesheet Language) a obrázky používané preddefinovanými vzorovými stránkami, rozloženiami strán a ovládacími prvkami v SharePointe 2010. Ak chcete nájsť súbory CSS v knižnici štýlov publikačnej lokality: Vyberte Akcie lokality→Zobraziť Všetok obsah stránky. Zobrazí sa obsah stránky. Knižnica štýlov sa nachádza v […]

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Nezahlcujte svoje publikum obrovskými číslami. V programe Microsoft Excel môžete zlepšiť čitateľnosť svojich tabúľ a zostáv formátovaním čísel tak, aby sa zobrazovali v tisíckach alebo miliónoch.

Ako zdieľať a sledovať lokality SharePoint

Ako zdieľať a sledovať lokality SharePoint

Zistite, ako používať nástroje sociálnych sietí SharePoints, ktoré umožňujú jednotlivcom a skupinám komunikovať, spolupracovať, zdieľať a spájať sa.

Ako previesť dátumy do Julianových formátov v Exceli

Ako previesť dátumy do Julianových formátov v Exceli

Juliánske dátumy sa často používajú vo výrobných prostrediach ako časová pečiatka a rýchla referencia pre číslo šarže. Tento typ kódovania dátumu umožňuje maloobchodníkom, spotrebiteľom a servisným zástupcom identifikovať, kedy bol produkt vyrobený, a teda aj vek produktu. Juliánske dátumy sa používajú aj v programovaní, armáde a astronómii. Rôzne […]

Ako vytvoriť Access Web App

Ako vytvoriť Access Web App

V Accesse 2016 môžete vytvoriť webovú aplikáciu. Čo je to teda webová aplikácia? Web znamená, že je online a aplikácia je len skratka pre „aplikáciu“. Vlastná webová aplikácia je online databázová aplikácia, ku ktorej sa pristupuje z cloudu pomocou prehliadača. Vytvárate a udržiavate webovú aplikáciu vo verzii pre počítače […]

Panel rýchleho spustenia v SharePointe 2010

Panel rýchleho spustenia v SharePointe 2010

Väčšina stránok v SharePointe 2010 zobrazuje zoznam navigačných prepojení na paneli Rýchle spustenie pozdĺž ľavej strany stránky. Panel Rýchle spustenie zobrazuje prepojenia na odporúčaný obsah lokality, ako sú zoznamy, knižnice, lokality a publikačné stránky. Panel Rýchle spustenie obsahuje dva veľmi dôležité odkazy: Odkaz na celý obsah lokality: […]

Čo znamenajú chybové hlásenia v programe Excel?

Čo znamenajú chybové hlásenia v programe Excel?

Pre jednoduché problémy Riešiteľ v Exceli zvyčajne rýchlo nájde optimálne hodnoty premennej Riešiteľ pre cieľovú funkciu. V niektorých prípadoch má však Riešiteľ problém nájsť hodnoty premennej Riešiteľ, ktoré optimalizujú cieľovú funkciu. V týchto prípadoch Riešiteľ zvyčajne zobrazí hlásenie alebo chybové hlásenie, ktoré popisuje alebo diskutuje problém, ktorý […]