Kaip naudoti „OnError“ pareiškimą „Excel 2016 VBA“.

Kai reikia išspręsti Excel VBA klaidas, galite naudoti OnError teiginį. Tačiau pirmiausia turite žinoti keletą dalykų. Teiginį On Error galite naudoti trimis būdais.

Sintaksė Ką tai daro
Ant Error GoTo etiketės Įvykdžius šį teiginį, VBA atnaujina vykdymą
sakinyje po nurodyta etikete.
Po etiketės turite įtraukti dvitaškį , kad VBA atpažintų ją kaip etiketę.
Dėl klaidos GoTo 0 Įvykdžius šį teiginį, VBA atnaujina įprastą
klaidų tikrinimo veiklą. Naudokite šį teiginį panaudoję vieną iš
kitų teiginių On Error arba kai norite pašalinti klaidų tvarkymą
savo procedūroje.
Įvykus klaidai, tęskite toliau Įvykdžius šį teiginį, VBA tiesiog ignoruoja visas klaidas
ir atnaujina vykdymą su kitu sakiniu.

Tęsiamas po klaidos

Kai kuriais atvejais tiesiog norite, kad įvykus klaidai tvarka baigtųsi gražiai. Pavyzdžiui, galite parodyti pranešimą, aprašantį klaidą, ir baigti procedūrą. (Anksčiau pateiktame EnterSquareRoot5 pavyzdyje naudojama ši technika.) Kitais atvejais, jei įmanoma, norite ištaisyti klaidą.

Norėdami susigrąžinti klaidą, turite naudoti pareiškimą Tęsti. Tai pašalina klaidos būseną ir leidžia tęsti vykdymą tam tikroje vietoje. Tęsimo teiginį galite naudoti trimis būdais.

Sintaksė Ką tai daro
Tęsti Vykdymas atnaujinamas su pareiškimu, dėl kurio įvyko klaida. Naudokite
tai, jei jūsų klaidų apdorojimo kodas išsprendžia problemą ir
galite tęsti.
Tęsti Kitas Vykdymas atnaujinamas su pareiškimu iškart po
pareiškimo, dėl kurio įvyko klaida. Tai iš esmės ignoruoja
klaidą.
CV etiketė Vykdymas atnaujinamas pagal jūsų nurodytą etiketę .

Šiame pavyzdyje įvykus klaidai naudojamas teiginys Resume:

Sub EnterSquareRoot6()
  Dim Num kaip variantas
  Pritemdyti pranešimą kaip eilutę
  Dim Ans kaip sveikasis skaičius
Bandyk iš naujo:
' Nustatykite klaidų apdorojimą
  Įvykus klaidai GoTo BadEntry
Prašyti vertės
  Skaičius = InputBox („Įveskite reikšmę“)
  Jei Skaičius = "" Tada išeikite iš sub
' Įveskite kvadratinę šaknį
  ActiveCell.Value = kvadratas (skaičius)
  Išeiti iš sub
BadEntry:
  Msg = Klaidos numeris & ": " & Klaida (Klaidos numeris)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Msg & "Įsitikinkite, kad pasirinktas diapazonas",
  Msg = Msg & "lapas neapsaugotas",
  Msg = Msg & "ir jūs įvedate neneigiamą reikšmę."
  Msg = Msg & vbNewLine & vbNewLine & "Bandyti dar kartą?"
  Ans = MsgBox (Msg, vbYesNo + vbCritical)
  Jei Ans = vbYes, tada tęskite TryAgain
Pabaigos sub

Ši procedūra turi kitą etiketę: TryAgain. Jei įvyksta klaida, vykdymas tęsiamas BadEntry etiketėje, o kodas rodo toliau pateiktą pranešimą. Jei vartotojas atsako spustelėdamas Taip, pareiškimas Tęsti pradedamas, o vykdymas grįžta prie etiketės TryAgain. Jei vartotojas spustelėja Ne, procedūra baigiasi.

Kaip naudoti „OnError“ pareiškimą „Excel 2016 VBA“.

Jei įvyksta klaida, vartotojas gali nuspręsti, ar bandyti dar kartą.

Atkreipkite dėmesį, kad klaidos pranešime taip pat yra klaidos numeris kartu su „oficialiu“ klaidos aprašymu.

Teiginys Resume išvalo klaidos sąlygą prieš tęsiant. Norėdami tai pamatyti, ankstesniame pavyzdyje pabandykite pakeisti teiginį nuo antro iki paskutinio:

Jei Ans = vbYes, tada eikite į Bandymą dar kartą

Kodas neveikia tinkamai, jei naudojate GoTo, o ne Resume. Norėdami parodyti, įveskite neigiamą skaičių. Gaunate klaidos raginimą. Spustelėkite Taip, kad bandytumėte dar kartą, tada įveskite kitą neigiamą skaičių. Ši antroji klaida nėra užfiksuota, nes nebuvo išvalyta pradinė klaidos sąlyga.

Trumpai tariant, klaida tvarkant

Siekdami padėti jums sutvarkyti visas klaidas, pateikiame greitą ir nešvarią santrauką. Klaidų apdorojimo kodo blokas turi šias charakteristikas:

  • Jis prasideda iškart po etiketės, nurodytos sakinyje On Error.

  • Ją makrokomandos turėtų pasiekti tik įvykus klaidai. Tai reiškia, kad prieš pat etiketę turite naudoti teiginį, pvz., Exit Sub arba Exit Function.

  • Gali prireikti CV pareiškimo. Jei pasirenkate nenutraukti procedūros, kai įvyksta klaida, prieš grįždami į pagrindinį kodą turite įvykdyti teiginį Resume.

Žinojimas, kada nekreipti dėmesio į klaidas

Kai kuriais atvejais visiškai gerai ignoruoti klaidas. Tada pasirodo pranešimas On Error Resume Next.

Toliau pateiktame pavyzdyje pateikiama kilpa per kiekvieną pasirinkto diapazono langelį ir konvertuojama reikšmė į kvadratinę šaknį. Ši procedūra sukuria klaidos pranešimą, jei bet kuriame pasirinkto langelyje yra neigiamas skaičius arba tekstas:

Sub SelectionSqrt()
  Pritemdyti langelį kaip diapazoną
  Jei TipoPavadinimas(Pasirinkimas) <> „Rangas“, tada išeikite iš sub
  Kiekvienai pasirinktai ląstelei
    cell.Value = Sqr(cell.Value)
  Kita ląstelė
Pabaigos sub

Tokiu atveju galbūt norėsite tiesiog praleisti bet kurį langelį, kuriame yra reikšmė, kurios negalite konvertuoti į kvadratinę šaknį. Naudodami If-Then struktūras galite sukurti visas klaidų tikrinimo galimybes, tačiau galite sukurti geresnį (ir paprastesnį) sprendimą tiesiog ignoruodami pasitaikančias klaidas.

Tai atliekama tokia tvarka, naudojant pranešimą „On Error Resume Next“:

Sub SelectionSqrt()
  Pritemdyti langelį kaip diapazoną
  Jei TipoPavadinimas(Pasirinkimas) <> „Rangas“, tada išeikite iš sub
  Įvykus klaidai, tęskite toliau
  Kiekvienai pasirinktai ląstelei
    cell.Value = Sqr(cell.Value)
  Kita ląstelė
Pabaigos sub

Paprastai galite naudoti pranešimą On Error Resume Next, jei manote, kad klaidos yra nekenksmingos arba nesusijusios su jūsų užduotimi.


Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti „Microsoft Word“ atidaryti failų tik skaitymo režimu sistemoje „Windows“.

Kaip neleisti Microsoft Word atidaryti failų tik skaitymo režimu sistemoje Windows. Microsoft Word atidaro failus tik skaitymo režimu, todėl jų redaguoti neįmanoma? Nesijaudinkite, metodai pateikiami žemiau

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti neteisingą Microsoft Word dokumentų spausdinimą

Kaip ištaisyti klaidas spausdinant neteisingus Microsoft Word dokumentus.Klaidos spausdinant Word dokumentus su pakeistais šriftais, netvarkingomis pastraipomis, trūkstamo teksto ar prarasto turinio yra gana dažnos. Tačiau nereikia

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Ištrinkite rašiklio ir paryškinimo piešinius savo „PowerPoint“ skaidrėse

Jei naudodami rašiklį ar žymeklį piešėte ant savo PowerPoint skaidrės pristatymo metu, galite išsaugoti brėžinius kitam pristatymui arba ištrinti juos, kad kitą kartą rodydami pradėtumėte nuo švarių PowerPoint skaidrių. Vykdykite šias instrukcijas, kad ištrintumėte rašiklio ir žymeklio piešinius: Trinti linijas po vieną […]

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekos turinys „SharePoint 2010“.

Stilių bibliotekoje yra CSS failų, XSL (Extensible Stylesheet Language) failų ir vaizdų, naudojamų iš anksto nustatytų puslapių puslapiuose, puslapių išdėstymuose ir valdikliuose „SharePoint 2010“. Norėdami rasti CSS failus publikavimo svetainės stilių bibliotekoje: pasirinkite Svetainės veiksmai → Peržiūrėti Visas svetainės turinys. Pasirodo svetainės turinys. Stiliaus biblioteka yra […]

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Formatuokite skaičius tūkstančiais ir milijonais „Excel“ ataskaitose

Neužkraukite savo auditorijos milžiniškais skaičiais. Programoje „Microsoft Excel“ galite pagerinti informacijos suvestinių ir ataskaitų skaitomumą formatuodami skaičius, kad jie būtų rodomi tūkstančiais arba milijonais.

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Kaip bendrinti ir stebėti „SharePoint“ svetaines

Sužinokite, kaip naudoti „SharePoints“ socialinių tinklų įrankius, leidžiančius asmenims ir grupėms bendrauti, bendradarbiauti, bendrinti ir prisijungti.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Kaip konvertuoti datas į Juliano formatus programoje „Excel“.

Julijaus datos dažnai naudojamos gamybos aplinkoje kaip laiko žyma ir greita partijos numerio nuoroda. Šio tipo datos kodavimas leidžia mažmenininkams, vartotojams ir paslaugų agentams nustatyti, kada produktas buvo pagamintas, taigi ir produkto amžių. Julijaus datos taip pat naudojamos programavimo, kariuomenės ir astronomijos srityse. Skirtingi […]

Kaip sukurti „Access“ žiniatinklio programą

Kaip sukurti „Access“ žiniatinklio programą

Galite sukurti žiniatinklio programą naudodami „Access 2016“. Taigi, kas vis dėlto yra žiniatinklio programa? Na, žiniatinklis reiškia, kad jis yra internete, o programa yra tik „programos“ santrumpa. Pasirinktinė žiniatinklio programa yra internetinė duomenų bazės programa, pasiekiama iš debesies naudojant naršyklę. Kuriate ir prižiūrite žiniatinklio programą darbalaukio versijoje […]

Greitosios paleidimo juosta „SharePoint 2010“.

Greitosios paleidimo juosta „SharePoint 2010“.

Daugumoje „SharePoint 2010“ puslapių sparčiojo paleidimo juostoje, esančioje kairėje puslapio pusėje, pateikiamas naršymo nuorodų sąrašas. Greitosios paleidimo juostoje rodomos nuorodos į siūlomą svetainės turinį, pvz., sąrašus, bibliotekas, svetaines ir publikavimo puslapius. Greitojo paleidimo juostoje yra dvi labai svarbios nuorodos: Visas svetainės turinys: […]

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Ką reiškia „Excel“ sprendimo klaidų pranešimai?

Paprastoms problemoms spręsti „Excel“ sprendėjas paprastai greitai suranda optimalias tikslinės funkcijos „Solver“ kintamųjų reikšmes. Tačiau kai kuriais atvejais „Solver“ turi problemų ieškant „Solver“ kintamųjų reikšmių, optimizuojančių tikslo funkciją. Tokiais atvejais „Solver“ paprastai rodo pranešimą arba klaidos pranešimą, kuriame aprašoma arba aptariama problema, kurią […]