Kā programmā Excel 2016 identificēt un apstrādāt visas iespējamās kļūdas? Bieži vien jūs nevarat. Par laimi, VBA nodrošina vēl vienu veidu, kā tikt galā ar šīm nepatīkamajām kļūdām.
EnterSquareRoot procedūras atkārtota apmeklēšana
Pārbaudiet tālāk norādīto kodu. Rutīna izmanto universālu paziņojumu On Error, lai notvertu visas kļūdas un pēc tam pārbaudītu, vai InputBox ir atcelts.
Sub EnterSquareRoot5()
Dim Num kā variants
Dim Msg As String
Iestatiet kļūdu apstrādi
Par kļūdu GoTo BadEntry
Pieprasīt vērtību
Skaitlis = InputBox (“Ievadiet vērtību”)
Iziet, ja tiek atcelts
Ja Cipars = ““ Tad izejiet no apakšpunkta
' Ievietojiet kvadrātsakni
ActiveCell.Value = kvadrāts(skaits)
Iziet Sub
BadEntry:
Msg = "Radās kļūda." & vbNewLine & vbNewLine
Msg = Ziņojums & "Pārliecinieties, vai ir atlasīts diapazons, "
Msg = Ziņojums & "lapa nav aizsargāta",
Msg = Msg & "un jūs ievadāt nenegatīvu vērtību."
MsgBox Ziņojums, vbCritical
Beigu apakš
Šī rutīna aiztur jebkura veida izpildlaika kļūdas. Pēc izpildlaika kļūdas fiksēšanas pārskatītā EnterSquareRoot procedūra parāda šo ziņojuma lodziņu. Šajā ziņojuma lodziņā ir aprakstīti visticamākie kļūdas cēloņi.
Procedūras izpildlaika kļūda ģenerē šo daļēji noderīgo kļūdas ziņojumu.
Kļūda nedarbojas?
Ja paziņojums par kļūdu nedarbojas, kā reklamēts, jums ir jāmaina viens no iestatījumiem:
Aktivizējiet VBE.
Izvēlieties komandu Rīki → Opcijas.
Dialoglodziņā Opcijas noklikšķiniet uz cilnes Vispārīgi.
Pārliecinieties, vai iestatījumam Break on All Errors ir noņemta atlase.
Ja šis iestatījums ir atlasīts, programma Excel būtībā ignorē paziņojumus par kļūdu. Parasti kļūdu slazdošanas opcijām ir jābūt iestatītām uz Pārtraukt neapstrādātu kļūdu gadījumā.
Par paziņojumu par kļūdu
Izmantojot paziņojumu On Error savā VBA kodā, varat apiet programmā Excel iebūvēto kļūdu apstrādi un izmantot savu kļūdu apstrādes kodu. Iepriekšējā piemērā izpildlaika kļūda liek makro izpildei pāriet uz priekšrakstu ar nosaukumu BadEntry. Tā rezultātā jūs izvairīsities no Excel nedraudzīgiem kļūdu ziņojumiem un varat parādīt lietotājam savu ziņojumu.
Ņemiet vērā, ka piemērā tiek izmantots Exit Sub priekšraksts tieši pirms etiķetes BadEntry. Šis paziņojums ir nepieciešams, jo jūs nevēlaties, lai izpildīt kļūdas apstrādes kodu, ja kļūda nav ne notikt.