Ako používať vyhlásenie o chybe v Exceli 2016 VBA

Keď sa potrebujete vysporiadať s chybami v Excel VBA, môžete použiť príkaz OnError. Najprv však musíte vedieť niekoľko vecí. Príkaz On Error môžete použiť tromi spôsobmi.

Syntax Čo to robí
Na štítku Error GoTo Po vykonaní tohto príkazu VBA obnoví vykonávanie na
príkaze nasledujúcom za zadaným označením. Za
štítok musíte vložiť dvojbodku , aby ho VBA rozpoznal ako štítok.
Pri chybe Prejsť na 0 Po vykonaní tohto príkazu VBA obnoví svoje normálne
správanie pri kontrole chýb. Tento príkaz použite po použití jedného z
iných príkazov On Error alebo keď chcete
vo svojej procedúre odstrániť spracovanie chýb .
Pri chybe Pokračujte ďalej Po vykonaní tohto príkazu VBA jednoducho ignoruje všetky chyby
a obnoví vykonávanie s ďalším príkazom.

Obnovuje sa po chybe

V niektorých prípadoch jednoducho chcete, aby sa rutina skončila elegantne, keď sa vyskytne chyba. Môžete napríklad zobraziť správu s popisom chyby a potom ukončiť procedúru. (Túto techniku ​​používa príklad EnterSquareRoot5 uvedený vyššie.) V iných prípadoch sa chcete po chybe zotaviť, ak je to možné.

Ak sa chcete zotaviť z chyby, musíte použiť príkaz Resume. Toto vymaže chybový stav a umožní vám pokračovať v vykonávaní na určitom mieste. Výpis Resume môžete použiť tromi spôsobmi.

Syntax Čo to robí
Pokračovať Vykonávanie sa obnoví s príkazom, ktorý spôsobil chybu. Použite
to, ak váš kód na spracovanie chýb problém opraví a
môžete pokračovať.
Pokračovať ďalej Vykonávanie sa obnoví s príkazom bezprostredne nasledujúcim za
príkazom, ktorý spôsobil chybu. Toto v podstate ignoruje
chybu.
Obnoviť štítok Vykonávanie sa obnoví na štítku, ktorý určíte.

Nasledujúci príklad používa príkaz Resume po výskyte chyby:

Sub EnterSquareRoot6()
  Dim Num ako variant
  Dim Msg As String
  Dim Ans As Integer
Skúste znova:
' Nastavte spracovanie chýb
  Pri chybe GoTo BadEntry
' Výzva na zadanie hodnoty
  Num = InputBox(“Zadajte hodnotu”)
  Ak Num = „“ Potom Exit Sub
' Vložte druhú odmocninu
  ActiveCell.Value = Sqr (Num)
  Ukončiť Sub
BadEntry:
  Msg = Err.Number & “: “ & Error(Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Msg & “Uistite sa, že je vybratý rozsah,”
  Msg = Msg & „hárok nie je chránený,“
  Msg = Msg & "a zadáte nezápornú hodnotu."
  Msg = Msg & vbNewLine & vbNewLine & "Skúsiť znova?"
  Ans = MsgBox(Správa, vbYesNo + vbCritical)
  Ak Ans = vbYes, potom pokračujte v pokuse znova
End Sub

Tento postup má ďalšie označenie: TryAgain. Ak sa vyskytne chyba, vykonávanie pokračuje na štítku BadEntry a kód zobrazí správu nižšie. Ak používateľ odpovie kliknutím na tlačidlo Áno, spustí sa príkaz Resume a vykonanie sa vráti späť na štítok TryAgain. Ak používateľ klikne na Nie, postup sa skončí.

Ako používať vyhlásenie o chybe v Exceli 2016 VBA

Ak sa vyskytne chyba, používateľ sa môže rozhodnúť, či to skúsi znova.

Všimnite si, že chybové hlásenie obsahuje aj číslo chyby spolu s „oficiálnym“ popisom chyby.

Príkaz Resume vymaže chybový stav pred pokračovaním. Aby ste to videli, skúste nahradiť predposledný príkaz v predchádzajúcom príklade nasledujúcim príkazom:

Ak Ans = vbYes, potom prejdite na TryAgain

Kód nefunguje správne, ak namiesto Resume použijete GoTo. Na ukážku zadajte záporné číslo. Zobrazí sa chybové hlásenie. Kliknutím na tlačidlo Áno to skúste znova a potom zadajte ďalšie záporné číslo. Táto druhá chyba nie je zachytená, pretože pôvodný chybový stav nebol vymazaný.

Spracovanie chýb v skratke

Aby sme vám pomohli udržať všetky tieto záležitosti týkajúce sa odstraňovania chýb v poriadku, tu je rýchly a špinavý súhrn. Blok kódu na spracovanie chýb má nasledujúce charakteristiky:

  • Začína bezprostredne po označení špecifikovanom v príkaze On Error.

  • Makro by ho malo dosiahnuť iba v prípade, že sa vyskytne chyba. To znamená, že musíte použiť príkaz ako Exit Sub alebo Exit Function bezprostredne pred menovkou.

  • Môže to vyžadovať vyhlásenie o obnovení. Ak sa rozhodnete neprerušiť procedúru, keď sa vyskytne chyba, musíte pred návratom do hlavného kódu vykonať príkaz Resume.

Vedieť, kedy ignorovať chyby

V niektorých prípadoch je úplne v poriadku ignorovať chyby. Vtedy prichádza na rad vyhlásenie On Error Resume Next.

Nasledujúci príklad prechádza cez každú bunku vo vybratom rozsahu a konvertuje hodnotu na druhú odmocninu. Tento postup vygeneruje chybové hlásenie, ak niektorá bunka vo výbere obsahuje záporné číslo alebo text:

Sub SelectionSqrt()
  Stlmiť bunku ako rozsah
  Ak TypeName(Selection) <> “Range” Potom Exit Sub
  Pre každú bunku vo výbere
    cell.Value = Sqr(cell.Value)
  Ďalšia bunka
End Sub

V tomto prípade možno budete chcieť jednoducho preskočiť každú bunku, ktorá obsahuje hodnotu, ktorú nemôžete previesť na druhú odmocninu. Pomocou štruktúr If-Then môžete vytvoriť všetky druhy možností kontroly chýb, ale môžete navrhnúť lepšie (a jednoduchšie) riešenie jednoduchým ignorovaním vyskytujúcich sa chýb.

Nasledujúca rutina to dosiahne pomocou príkazu On Error Resume Next:

Sub SelectionSqrt()
  Stlmiť bunku ako rozsah
  Ak TypeName(Selection) <> “Range” Potom Exit Sub
  Pri chybe Pokračujte ďalej
  Pre každú bunku vo výbere
    cell.Value = Sqr(cell.Value)
  Ďalšia bunka
End Sub

Vo všeobecnosti môžete použiť príkaz On Error Resume Next, ak považujete chyby za neškodné alebo bezvýznamné pre vašu úlohu.

Leave a Comment

Ako zmeniť pozadie v PowerPointe 2019

Ako zmeniť pozadie v PowerPointe 2019

Naučte sa, ako jednoducho zmeniť pozadie v PowerPointe 2019, aby vaše prezentácie pôsobili pútavo a profesionálne. Získajte tipy na plnú farbu, prechod, obrázky a vzory.

Ako používať štatistické funkcie v Exceli na počítanie položiek v množine údajov

Ako používať štatistické funkcie v Exceli na počítanie položiek v množine údajov

Excel poskytuje štyri užitočné štatistické funkcie na počítanie buniek v hárku alebo zozname: COUNT, COUNTA, COUNTBLANK a COUNTIF. Pre viac informácií o Excel funkciách, pokračujte.

Klávesové skratky pre bežné príkazy zobrazenia Excel 2013

Klávesové skratky pre bežné príkazy zobrazenia Excel 2013

Objavte efektívne klávesové skratky v Exceli 2013 pre zobrazenie, ktoré vám pomôžu zlepšiť produktivitu. Všetky skratky sú začiatkom s Alt+W.

Ako nastaviť okraje stránky v programe Word 2013

Ako nastaviť okraje stránky v programe Word 2013

Naučte sa, ako nastaviť okraje v programe Word 2013 s naším jednoduchým sprievodcom. Tento článok obsahuje užitočné tipy a predvoľby okrajov pre váš projekt.

Ako používať štatistické funkcie na výpočet priemerov, režimov a mediánov v Exceli

Ako používať štatistické funkcie na výpočet priemerov, režimov a mediánov v Exceli

Excel vám poskytuje niekoľko štatistických funkcií na výpočet priemerov, režimov a mediánov. Pozrite si podrobnosti a príklady ich použitia.

Ako zistiť a opraviť chyby vzorcov v Exceli 2016

Ako zistiť a opraviť chyby vzorcov v Exceli 2016

Excel 2016 ponúka niekoľko efektívnych spôsobov, ako opraviť chyby vo vzorcoch. Opravy môžete vykonávať po jednom, spustiť kontrolu chýb a sledovať odkazy na bunky.

Archivácia priečinkov programu Outlook

Archivácia priečinkov programu Outlook

V niektorých prípadoch Outlook ukladá e-mailové správy, úlohy a plánované činnosti staršie ako šesť mesiacov do priečinka Archív – špeciálneho priečinka pre zastarané položky. Učte sa, ako efektívne archivovať vaše položky v Outlooku.

Vytváranie a formátovanie tabuliek v programe Word 2019

Vytváranie a formátovanie tabuliek v programe Word 2019

Word vám umožňuje robiť rôzne zábavné veci s tabuľkami. Učte sa o vytváraní a formátovaní tabuliek vo Worde 2019. Tabuľky sú skvelé na organizáciu informácií.

Výber rozsahu Excel VBA

Výber rozsahu Excel VBA

V článku sa dozviete, ako umožniť používateľovi vybrať rozsah v Excel VBA pomocou dialógového okna. Získajte praktické tipy a príklady na zlepšenie práce s rozsahom Excel VBA.

Výpočet percentuálneho rozptylu so zápornými hodnotami v Exceli

Výpočet percentuálneho rozptylu so zápornými hodnotami v Exceli

Vzorec na výpočet percentuálnej odchýlky v Exceli s funkciou ABS pre správne výsledky aj so zápornými hodnotami.