Allar VBA villur eru ekki búnar til eins. Sumt er alvarlegt og annað minna alvarlegt. Þó að þú gætir hunsað villur sem þú telur vera ómarkvissar, verður þú að takast á við aðrar, alvarlegri villur. Í sumum tilfellum þarftu að bera kennsl á tiltekna villu sem á sér stað.
Sérhver tegund villu hefur opinbert númer. Þegar villa kemur upp geymir Excel villunúmerið í Villuhlut sem heitir Err. Number eign þessa hlutar inniheldur villunúmerið og Lýsing eiginleiki hans inniheldur lýsingu á villunni. Til dæmis sýnir eftirfarandi setning villunúmerið, tvípunkt og lýsingu á villunni:
MsgBox Err.Number & ": " & Err.Description
Hafðu í huga að Excel villuskilaboð eru ekki alltaf mjög gagnleg - en þú veist það nú þegar.
Eftirfarandi aðferð sýnir hvernig á að ákvarða hvaða villa kom upp. Í þessu tilviki er óhætt að hunsa villur sem orsakast af því að reyna að fá kvaðratrót af ójákvæðri tölu (þ.e. villa 5) eða villur sem orsakast af því að reyna að fá kvaðratrót af ótalnagildi (villa 13).
Á hinn bóginn þarf að láta notandann vita ef vinnublaðið er varið og valið inniheldur eina eða fleiri læsta reiti. (Annars gæti notandinn haldið að fjölvi virkaði þegar hann gerði það ekki.) Tilraun til að skrifa í læstan reit í vernduðu vinnublaði veldur villu 1004.
Sub SelectionSqrt()
Dimm klefi sem svið
Dim ErrMsg As String
Ef TypeName(Selection) <> "Range" Þá Hætta undir
Á Villa GoTo ErrorHandler
Fyrir hvern reit í vali
cell.Value = Sqr(cell.Value)
Næsta klefi
Hætta undir
ErrorHandler:
Veldu Case Err.Number
Mál 5 'Neikvæð tala
Halda áfram Næst
Tilfelli 13 'Tegundarmisræmi
Halda áfram Næst
Mál 1004 'Læstur klefi, varið lak
MsgBox "Hólfið er læst. Reyndu aftur.", vbCritical, cell.Address
Hætta undir
Tilfelli Annað
ErrMsg = Villa(Villa.númer)
MsgBox "VILLA: " & ErrMsg, vbCritical, cell.Address
Hætta undir
Endurval
End Sub
Þegar keyrsluvilla á sér stað hoppar framkvæmdin í kóðann sem byrjar á ErrorHandler merkimiðanum. Velja tilfelli uppbygging prófar fyrir þremur algengum villunúmerum. Ef villunúmerið er 5 eða 13, hefst framkvæmd aftur við næstu yfirlýsingu. (Með öðrum orðum, villan er hunsuð.) En ef villunúmerið er 1004, ráðleggur venjan notandanum og lýkur síðan. Síðasta tilvikið, heildarupptaka fyrir óvæntar villur, fangar allar aðrar villur og sýnir raunveruleg villuboð.