Ako môžete identifikovať a riešiť všetky možné chyby v Exceli 2016? Často nemôžete. Našťastie VBA poskytuje ďalší spôsob, ako sa vysporiadať s týmito otravnými chybami.
Opätovná návšteva procedúry EnterSquareRoot
Preskúmajte nasledujúci kód. Rutina používa viacúčelový príkaz On Error na zachytenie všetkých chýb a potom skontroluje, či bol InputBox zrušený.
Sub EnterSquareRoot5()
Dim Num ako variant
Dim Msg As String
' Nastavte spracovanie chýb
Pri chybe GoTo BadEntry
' Výzva na zadanie hodnoty
Num = InputBox(“Zadajte hodnotu”)
' Ukončite, ak je zrušené
Ak Num = „“ Potom Exit Sub
' Vložte druhú odmocninu
ActiveCell.Value = Sqr (Num)
Ukončiť Sub
BadEntry:
Msg = "Vyskytla sa chyba." & 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."
MsgBox Msg, vbCritical
End Sub
Táto rutina zachytáva akýkoľvek typ chyby spustenia. Po zachytení chyby spustenia zobrazí revidovaná procedúra EnterSquareRoot toto okno so správou. Toto okno správy popisuje najpravdepodobnejšie príčiny chyby.
Chyba behu v procedúre generuje toto čiastočne užitočné chybové hlásenie.
On Chyba nefunguje?
Ak vyhlásenie Pri chybe nefunguje tak, ako je inzerované, musíte zmeniť jedno zo svojich nastavení:
Aktivujte VBE.
Vyberte príkaz Nástroje → Možnosti.
Kliknite na kartu Všeobecné v dialógovom okne Možnosti.
Uistite sa, že nie je vybraté nastavenie Break on All Errors.
Ak je vybraté toto nastavenie, Excel v podstate ignoruje všetky príkazy On Error. Za normálnych okolností chcete ponechať možnosti zachytávania chýb nastavené na možnosť Prerušiť pri neošetrených chybách.
O vyhlásení On Error
Použitie príkazu On Error v kóde VBA vám umožňuje obísť vstavané spracovanie chýb v Exceli a použiť vlastný kód na spracovanie chýb. V predchádzajúcom príklade chyba spustenia spôsobí, že spustenie makra preskočí na príkaz s názvom BadEntry. V dôsledku toho sa vyhnete nepríjemným chybovým hláseniam programu Excel a môžete používateľovi zobraziť svoju vlastnú správu.
Všimnite si, že príklad používa príkaz Exit Sub tesne pred štítkom BadEntry. Toto tvrdenie je nutné, pretože nechcete spustiť kód spracovanie chýb, ak sa chyba nie je dôjsť.