Si mund të identifikoni dhe trajtoni çdo gabim të mundshëm në Excel 2016? Shpesh, nuk mundesh. Për fat të mirë, VBA ofron një mënyrë tjetër për t'u marrë me ato gabime të bezdisshme.
Rishikimi i procedurës EnterSquareRoot
Shqyrtoni kodin e mëposhtëm. Rutina përdor një deklaratë për të gjitha qëllimet On Error për të bllokuar të gjitha gabimet dhe më pas kontrollimin për të parë nëse InputBox është anuluar.
Nën EnterSquareRoot5()
Dim Num As Variant
Dim Msg As String
' Konfiguro trajtimin e gabimeve
Në gabim GoTo BadEntry
' Kërkoni për një vlerë
Num = InputBox ("Fut një vlerë")
' Dil nëse anulohet
Nëse Num = "" Pastaj Dilni Nën
' Fusni rrënjën katrore
ActiveCell.Value = Sqr(Num)
Dilni Nën
Hyrja e keqe:
Msg = "Ndodhi një gabim." & vbNewLine & vbNewLine
Msg = Mesazh & "Sigurohuni që të jetë zgjedhur një varg,"
Msg = Msg & "fleta nuk është e mbrojtur",
Msg = Msg & "dhe ju vendosni një vlerë jonegative."
MsgBox Msg, vbCritical
Fundi Nën
Kjo rutinë bllokon çdo lloj gabimi në kohën e ekzekutimit. Pas bllokimit të një gabimi në kohën e ekzekutimit, procedura e rishikuar EnterSquareRoot shfaq këtë kuti mesazhi. Kjo kuti mesazhi përshkruan shkaqet më të mundshme të gabimit.
Një gabim në kohën e ekzekutimit në procedurë gjeneron këtë mesazh gabimi gjysmë të dobishëm.
Në Gabim nuk funksionon?
Nëse një deklaratë On Error nuk funksionon siç reklamohet, duhet të ndryshoni një nga cilësimet tuaja:
Aktivizoni VBE.
Zgjidhni komandën Tools → Options.
Klikoni skedën e Përgjithshme të kutisë së dialogut Opsionet.
Sigurohuni që cilësimi Break on All Errors është çzgjedhur.
Nëse zgjidhet ky cilësim, Excel në thelb injoron çdo deklaratë On Error. Zakonisht dëshironi të mbani opsionet Error Trapping të vendosur në Break on Unhandled Errors.
Rreth deklaratës On Error
Përdorimi i një deklarate On Error në kodin tuaj VBA ju lejon të anashkaloni trajtimin e gabimeve të integruara të Excel dhe të përdorni kodin tuaj të trajtimit të gabimeve. Në shembullin e mëparshëm, një gabim në kohën e ekzekutimit bën që ekzekutimi makro të kalojë te deklarata e emërtuar BadEntry. Si rezultat, ju shmangni mesazhet e gabimit jo miqësore të Excel dhe mund t'i shfaqni përdoruesit mesazhin tuaj.
Vini re se shembulli përdor një deklaratë Exit Sub pikërisht përpara etiketës BadEntry. Kjo deklaratë është e nevojshme sepse nuk dëshironi të ekzekutoni kodin e trajtimit të gabimeve nëse nuk ndodh një gabim .