Vse napake VBA niso enake. Nekateri so resni, drugi pa manj resni. Čeprav lahko prezrete napake, za katere menite, da so nepomembne, se morate ukvarjati z drugimi, resnejšimi napakami. V nekaterih primerih morate določiti posebno napako, ki se pojavi.
Vsaka vrsta napake ima uradno številko. Ko pride do napake, Excel shrani številko napake v objekt Error z imenom Err. Lastnost Number tega predmeta vsebuje številko napake, lastnost Description pa opis napake. Naslednji stavek na primer prikaže številko napake, dvopičje in opis napake:
MsgBox Err.Number & ": " & Err.Description
Upoštevajte, da sporočila o napakah v Excelu niso vedno zelo uporabna – vendar to že veste.
Naslednji postopek prikazuje, kako ugotoviti, do katere napake je prišlo. V tem primeru lahko varno prezrete napake, ki nastanejo zaradi poskusa pridobivanja kvadratnega korena nepozitivnega števila (to je napaka 5) ali napake, ki jih povzroči poskus pridobivanja kvadratnega korena neštevilčne vrednosti (napaka 13).
Po drugi strani pa morate uporabnika obvestiti, če je delovni list zaščiten in izbor vsebuje eno ali več zaklenjenih celic. (V nasprotnem primeru lahko uporabnik misli, da je makro deloval, ko v resnici ni.) Poskus pisanja v zaklenjeno celico na zaščitenem delovnem listu povzroči napako 1004.
Sub SelectionSqrt()
Dim cell As Range
Zatemni ErrMsg kot niz
Če TypeName(Selection) <> "Range" Nato zapustite Sub
Ob napaki Pojdi na ErrorHandler
Za vsako celico v izboru
cell.Value = Sqr(cell.Value)
Naslednja celica
Izhod Sub
ErrorHandler:
Izberite Številka napake primera
Primer 5 'Negativna številka
Nadaljuj Naprej
Primer 13 'Neujemanje vrste
Nadaljuj Naprej
Zadeva 1004 'Zaklenjena celica, zaščiten list
MsgBox "Celica je zaklenjena. Poskusi znova.", vbCritical, cell.Address
Izhod Sub
Drugi primer
ErrMsg = Error(Err.Number)
MsgBox "NAPAKA: " & ErrMsg, vbCritical, cell.Address
Izhod Sub
Konec Izberite
Končni sub
Ko pride do napake med izvajanjem, izvedba skoči na kodo, ki se začne z oznako ErrorHandler. Struktura Select Case testira tri pogoste številke napak. Če je številka napake 5 ali 13, se izvedba nadaljuje z naslednjim stavkom. (Z drugimi besedami, napaka je prezrta.) Če pa je številka napake 1004, rutina opozori uporabnika in se nato konča. Zadnji primer, ki zajema vse nepričakovane napake, ujame vse druge napake in prikaže dejansko sporočilo o napaki.