Jak používat příkaz OnError v aplikaci Excel 2016 VBA

Když se potřebujete vypořádat s chybami v Excel VBA, můžete použít příkaz OnError. Nejprve však musíte vědět několik věcí. Příkaz On Error můžete použít třemi způsoby.

Syntax Co to dělá
Na štítku Error GoTo Po provedení tohoto příkazu VBA obnoví provádění na
příkazu následujícím za zadaným štítkem.
Za štítkem musíte vložit dvojtečku , aby jej VBA rozpoznal jako štítek.
Při chybě GoTo 0 Po provedení tohoto příkazu VBA obnoví své normální
chování při kontrole chyb. Tento příkaz použijte po použití jednoho z
dalších příkazů On Error nebo když chcete
ve své proceduře odstranit zpracování chyb .
Při chybě pokračovat dále Po provedení tohoto příkazu VBA jednoduše ignoruje všechny chyby
a obnoví provádění dalším příkazem.

Obnovení po chybě

V některých případech jednoduše chcete, aby rutina skončila elegantně, když dojde k chybě. Můžete například zobrazit zprávu popisující chybu a poté ukončit postup. (Tuto techniku ​​používá výše uvedený příklad EnterSquareRoot5.) V ostatních případech se chcete po chybě zotavit, pokud je to možné.

Chcete-li se zotavit z chyby, musíte použít příkaz Resume. Tím se vymaže chybový stav a umožní vám pokračovat v provádění na určitém místě. Příkaz Resume můžete použít třemi způsoby.

Syntax Co to dělá
Životopis Provádění bude pokračovat s příkazem, který způsobil chybu. Použijte
to, pokud váš kód pro zpracování chyb problém opraví a
můžete pokračovat.
Pokračovat dále Provádění se obnoví s příkazem bezprostředně následujícím po
příkazu, který způsobil chybu. Tím se
chyba v podstatě ignoruje .
Obnovit štítek Provádění bude pokračovat na štítku, který určíte.

Následující příklad používá příkaz Resume poté, co dojde k chybě:

Sub EnterSquareRoot6()
  Dim Num jako varianta
  Dim Msg As String
  Dim Ans As Integer
Zkus to znovu:
' Nastavte zpracování chyb
  Při chybě GoTo BadEntry
' Dotázat se na hodnotu
  Num = InputBox(“Zadejte hodnotu”)
  If Num = „“ Pak Exit Sub
' Vložte druhou odmocninu
  ActiveCell.Value = Sqr (Num)
  Exit Sub
BadEntry:
  Msg = Err.Number & “: “ & Error(Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Msg & „Ujistěte se, že je vybrán rozsah,“
  Msg = Msg & „list není chráněn,“
  Msg = Msg & "a zadáte nezápornou hodnotu."
  Msg = Msg & vbNewLine & vbNewLine & "Zkusit znovu?"
  Ans = MsgBox(Msg, vbYesNo + vbCritical)
  Pokud Ans = vbYes, pak pokračujte v pokusu znovu
End Sub

Tento postup má další označení: TryAgain. Pokud dojde k chybě, provádění pokračuje na štítku BadEntry a kód zobrazí zprávu níže. Pokud uživatel odpoví kliknutím na Ano, spustí se příkaz Resume a provedení skočí zpět na štítek TryAgain. Pokud uživatel klepne na Ne, postup se ukončí.

Jak používat příkaz OnError v aplikaci Excel 2016 VBA

Pokud dojde k chybě, uživatel se může rozhodnout, zda to zkusí znovu.

Všimněte si, že chybová zpráva obsahuje také číslo chyby spolu s „oficiálním“ popisem chyby.

Před pokračováním příkaz Resume vymaže chybový stav. Chcete-li to vidět, zkuste nahradit předposlední příkaz v předchozím příkladu následujícím příkazem:

If Ans = vbYes Then GoTo TryAgain

Kód nefunguje správně, pokud místo Resume používáte GoTo. Pro demonstraci zadejte záporné číslo. Zobrazí se chybová zpráva. Klepnutím na Ano to zkuste znovu a poté zadejte další záporné číslo. Tato druhá chyba není zachycena, protože původní chybový stav nebyl vymazán.

Ošetření chyb ve zkratce

Abychom vám pomohli udržet všechny tyto záležitosti týkající se odstraňování chyb v pořádku, uvádíme rychlé a špinavé shrnutí. Blok kódu pro zpracování chyb má následující vlastnosti:

  • Začíná bezprostředně po štítku zadaném v příkazu On Error.

  • Makro by ho mělo dosáhnout pouze v případě, že dojde k chybě. To znamená, že musíte bezprostředně před štítkem použít příkaz jako Exit Sub nebo Exit Function.

  • Může vyžadovat prohlášení Resume. Pokud se rozhodnete nepřerušit proceduru, když dojde k chybě, musíte před návratem k hlavnímu kódu provést příkaz Resume.

Vědět, kdy chyby ignorovat

V některých případech je naprosto v pořádku chyby ignorovat. Tehdy přichází na řadu příkaz On Error Resume Next.

Následující příklad prochází každou buňku ve vybraném rozsahu a převádí hodnotu na druhou odmocninu. Tento postup vygeneruje chybovou zprávu, pokud některá buňka ve výběru obsahuje záporné číslo nebo text:

Sub SelectionSqrt()
  Ztlumit buňku jako rozsah
  Pokud TypeName(Selection) <> “Range” pak Exit Sub
  Pro každou buňku ve výběru
    cell.Value = Sqr(cell.Value)
  Další buňka
End Sub

V tomto případě možná budete chtít jednoduše přeskočit libovolnou buňku obsahující hodnotu, kterou nelze převést na druhou odmocninu. Pomocí struktur If-Then můžete vytvořit nejrůznější možnosti kontroly chyb, ale můžete navrhnout lepší (a jednodušší) řešení tím, že budete chyby, ke kterým dochází, jednoduše ignorovat.

Následující rutina toho dosáhne pomocí příkazu On Error Resume Next:

Sub SelectionSqrt()
  Ztlumit buňku jako rozsah
  Pokud TypeName(Selection) <> “Range” pak Exit Sub
  Při chybě pokračovat dále
  Pro každou buňku ve výběru
    cell.Value = Sqr(cell.Value)
  Další buňka
End Sub

Obecně můžete použít příkaz On Error Resume Next, pokud považujete chyby za neškodné nebo nedůležité pro váš úkol.


Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows

Jak zablokovat aplikaci Microsoft Word v otevírání souborů v režimu pouze pro čtení v systému Windows Aplikace Microsoft Word otevírá soubory v režimu pouze pro čtení, takže je nelze upravovat? Nebojte se, metody jsou uvedeny níže

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit nesprávný tisk dokumentů Microsoft Word

Jak opravit chyby při tisku nesprávných dokumentů Microsoft Word Chyby při tisku dokumentů Word se změněným písmem, chaotickými odstavci, chybějícím textem nebo ztraceným obsahem jsou poměrně časté. Nicméně ne

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Vymažte kresby perem a zvýrazňovačem na snímcích PowerPoint

Pokud jste použili pero nebo zvýrazňovač ke kreslení na snímky aplikace PowerPoint během prezentace, můžete kresby uložit pro další prezentaci nebo je vymazat, takže až ji příště ukážete, začnete s čistými snímky aplikace PowerPoint. Chcete-li vymazat kresby perem a zvýrazňovačem, postupujte podle těchto pokynů: Mazání čar jedna na […]

Obsah knihovny stylů v SharePointu 2010

Obsah knihovny stylů v SharePointu 2010

Knihovna stylů obsahuje soubory CSS, soubory XSL (Extensible Stylesheet Language) a obrázky používané předdefinovanými vzorovými stránkami, rozvržení stránek a ovládací prvky v SharePointu 2010. Chcete-li najít soubory CSS v knihovně stylů webu pro publikování: Vyberte Akce webu→ Zobrazit Veškerý obsah webu. Zobrazí se obsah webu. Knihovna stylů se nachází v […]

Formátování čísel v tisících a milionech v sestavách Excel

Formátování čísel v tisících a milionech v sestavách Excel

Nezahlcujte své publikum gargantuovskými čísly. V aplikaci Microsoft Excel můžete zlepšit čitelnost řídicích panelů a sestav formátováním čísel tak, aby se zobrazovaly v tisících nebo milionech.

Jak sdílet a sledovat weby SharePoint

Jak sdílet a sledovat weby SharePoint

Naučte se používat nástroje sociálních sítí SharePoints, které umožňují jednotlivcům a skupinám komunikovat, spolupracovat, sdílet a propojovat se.

Jak převést data do juliánských formátů v aplikaci Excel

Jak převést data do juliánských formátů v aplikaci Excel

Juliánská data se často používají ve výrobním prostředí jako časové razítko a rychlý odkaz pro číslo šarže. Tento typ kódování data umožňuje maloobchodníkům, spotřebitelům a servisním zástupcům identifikovat, kdy byl produkt vyroben, a tím i stáří produktu. Juliánská data se také používají v programování, armádě a astronomii. Odlišný […]

Jak vytvořit webovou aplikaci Access

Jak vytvořit webovou aplikaci Access

Webovou aplikaci můžete vytvořit v Accessu 2016. Co je tedy vlastně webová aplikace? Web znamená, že je online, a aplikace je jen zkratka pro „aplikaci“. Vlastní webová aplikace je online databázová aplikace přístupná z cloudu pomocí prohlížeče. Webovou aplikaci vytváříte a udržujete ve verzi pro počítače […]

Panel rychlého spuštění v SharePointu 2010

Panel rychlého spuštění v SharePointu 2010

Většina stránek v SharePointu 2010 zobrazuje seznam navigačních odkazů na panelu Snadné spuštění na levé straně stránky. Panel Snadné spuštění zobrazuje odkazy na doporučený obsah webu, jako jsou seznamy, knihovny, weby a stránky publikování. Panel Snadné spuštění obsahuje dva velmi důležité odkazy: Odkaz na veškerý obsah webu: […]

Co znamenají chybové zprávy Řešitel v Excelu?

Co znamenají chybové zprávy Řešitel v Excelu?

U jednoduchých problémů Řešitel v Excelu obvykle rychle najde optimální hodnoty proměnné Řešitel pro účelovou funkci. Ale v některých případech má Řešitel problém najít hodnoty proměnné Řešitel, které optimalizují účelovou funkci. V těchto případech Řešitel obvykle zobrazí zprávu nebo chybovou zprávu, která popisuje nebo popisuje problém, který […]