Kaip galite nustatyti ir tvarkyti visas galimas klaidas programoje „Excel 2016“? Dažnai tu negali. Laimei, VBA suteikia dar vieną būdą, kaip susidoroti su šiomis nemaloniomis klaidomis.
„EnterSquareRoot“ procedūros peržiūra
Išnagrinėkite toliau pateiktą kodą. Įprasta programa naudoja universalų pranešimą apie klaidą, kad užfiksuotų visas klaidas ir patikrintų, ar įvesties laukelis buvo atšauktas.
Sub EnterSquareRoot5()
Dim Num kaip variantas
Pritemdyti pranešimą kaip eilutę
' Nustatykite klaidų apdorojimą
Įvykus klaidai GoTo BadEntry
Prašyti vertės
Skaičius = InputBox („Įveskite reikšmę“)
Išeikite, jei atšauksite
Jei Skaičius = "" Tada išeikite iš sub
' Įveskite kvadratinę šaknį
ActiveCell.Value = kvadratas (skaičius)
Išeiti iš sub
BadEntry:
Msg = "Įvyko klaida." & vbNewLine & vbNewLine
Msg = Msg & "Įsitikinkite, kad pasirinktas diapazonas",
Msg = Msg & "lapas neapsaugotas",
Msg = Msg & "ir jūs įvedate neneigiamą reikšmę."
MsgBox Msg, vbCritical
Pabaigos sub
Ši rutina užfiksuoja bet kokio tipo vykdymo klaidas. Užfiksavus vykdymo laiko klaidą, peržiūrėta EnterSquareRoot procedūra rodo šį pranešimo laukelį. Šiame pranešimų laukelyje aprašomos labiausiai tikėtinos klaidos priežastys.
Vykdymo laiko klaida procedūroje generuoja šį pusiau naudingą klaidos pranešimą.
Dėl klaidos neveikia?
Jei pranešimas apie klaidą neveikia taip, kaip reklamuojama, turite pakeisti vieną iš nustatymų:
Suaktyvinkite VBE.
Pasirinkite komandą Įrankiai → Parinktys.
Dialogo lange Parinktys spustelėkite skirtuką Bendra.
Įsitikinkite, kad atšauktas nustatymas Pertrauka dėl visų klaidų.
Jei pasirinktas šis parametras, „Excel“ iš esmės ignoruoja visus pranešimus apie klaidą. Paprastai norite, kad klaidų gaudymo parinktys būtų nustatytos kaip Pertrauka netvarkomų klaidų atveju.
Apie pranešimą apie klaidą
Naudodami teiginį On Error savo VBA kode galite apeiti „Excel“ integruotą klaidų apdorojimą ir naudoti savo klaidų apdorojimo kodą. Ankstesniame pavyzdyje dėl vykdymo klaidos makrokomandos vykdymas pereina prie sakinio, pažymėto BadEntry. Dėl to išvengsite nedraugiškų „Excel“ klaidų pranešimų ir galėsite vartotojui parodyti savo pranešimą.
Atkreipkite dėmesį, kad pavyzdyje naudojamas Exit Sub teiginys prieš pat BadEntry etiketę. Šis teiginys yra būtina, nes jūs nenorite vykdyti klaidos tvarkymo kodą, jei nėra klaida nėra atsirasti.