Kako uporabljati izjavo OnError v Excelu 2016 VBA

Ko se morate ukvarjati z napakami v Excelu VBA, lahko uporabite stavek OnError. Vendar pa morate najprej vedeti nekaj stvari. Izjavo On Error lahko uporabite na tri načine.

Sintaksa Kaj počne
Ob napaki Oznaka GoTo Po izvedbi tega stavka se VBA nadaljuje z izvajanjem pri
stavku, ki sledi navedeni oznaki. Za
oznako morate vključiti dvopičje , da jo VBA prepozna kot oznako.
Ob napaki Pojdi na 0 Po izvedbi tega stavka VBA nadaljuje s svojim običajnim
preverjanjem napak. Ta stavek uporabite po uporabi enega od
drugih stavkov On Error ali ko želite odstraniti obdelavo napak
v postopku.
Ob napaki Nadaljuj naprej Po izvedbi tega stavka VBA preprosto prezre vse napake
in nadaljuje izvajanje z naslednjim stavkom.

Nadaljevanje po napaki

V nekaterih primerih preprosto želite, da se rutina lepo konča, ko pride do napake. Lahko na primer prikažete sporočilo, ki opisuje napako, in nato zapustite postopek. (Primer EnterSquareRoot5, prikazan prej, uporablja to tehniko.) V drugih primerih, če je mogoče, želite popraviti napako.

Če želite obnoviti napako, morate uporabiti stavek Resume. To počisti stanje napake in vam omogoča nadaljevanje izvajanja na nekem mestu. Izjavo Resume lahko uporabite na tri načine.

Sintaksa Kaj počne
Nadaljuj Izvajanje se nadaljuje s stavkom, ki je povzročil napako. Uporabite
to, če vaša koda za obravnavo napak odpravi težavo in
je v redu, da nadaljujete.
Nadaljuj Naprej Izvajanje se nadaljuje s stavkom takoj za
stavkom, ki je povzročil napako. To v bistvu ignorira
napako.
Nadaljuj oznaka Izvajanje se nadaljuje z oznako, ki jo določite.

Naslednji primer uporablja stavek Resume po pojavu napake:

Sub EnterSquareRoot6()
  Dim Num kot varianta
  Zatemni sporočilo kot niz
  Dim Ans kot celo število
Poskusi ponovno:
' Nastavite ravnanje z napakami
  Ob napaki Pojdi na BadEntry
' Poziv za vrednost
  Številka = InputBox (»Vnesite vrednost«)
  Če je Num = ““ Nato zapustite sub
' Vstavite kvadratni koren
  ActiveCell.Value = Sqr (število)
  Izhod Sub
BadEntry:
  Msg = Err.Number & “: “ & Error(Err.Number)
  Sporočilo = Sporočilo & vbNewLine & vbNewLine
  Sporočilo = Sporočilo & "Prepričajte se, da je izbran obseg, "
  Sporočilo = Sporočilo & "list ni zaščiten,"
  Sporočilo = Sporočilo & "in vnesete nenegativno vrednost."
  Sporočilo = Sporočilo & vbNewLine & vbNewLine & »Poskusi znova?«
  Ans = MsgBox(Msg, vbYesNo + vbCritical)
  Če je Ans = vbYes, potem nadaljuj Poskusi znova
Končni sub

Ta postopek ima še eno oznako: TryAgain. Če pride do napake, se izvajanje nadaljuje pri oznaki BadEntry, koda pa prikaže spodnje sporočilo. Če se uporabnik odzove s klikom na Da, se začne stavek Resume in izvedba skoči nazaj na oznako TryAgain. Če uporabnik klikne Ne, se postopek konča.

Kako uporabljati izjavo OnError v Excelu 2016 VBA

Če pride do napake, se lahko uporabnik odloči, ali bo poskusil znova.

Upoštevajte, da sporočilo o napaki vključuje tudi številko napake, skupaj z »uradnim« opisom napake.

Stavek Resume počisti stanje napake, preden nadaljuje. Če želite to videti, poskusite zamenjati naslednjo izjavo za predzadnji stavek v prejšnjem primeru:

Če je Ans = vbYes, potem Pojdi na Poskusi še enkrat

Koda ne deluje pravilno, če uporabljate GoTo namesto Resume. Za demonstracijo vnesite negativno število. Dobite poziv za napako. Kliknite Da, da poskusite znova, in nato vnesite drugo negativno število. Ta druga napaka ni ujeta, ker prvotni pogoj napake ni bil počiščen.

Obravnava napak na kratko

Tu je hiter in umazan povzetek, da boste lažje obdržali ves ta posel z obravnavanjem napak. Blok kode za obravnavo napak ima naslednje značilnosti:

  • Začne se takoj za oznako, določeno v stavku On Error.

  • Vaš makro bi ga moral doseči le, če pride do napake. To pomeni, da morate neposredno pred oznako uporabiti stavek, kot je Exit Sub ali Exit Function.

  • Morda bo zahteval izjavo o življenjepisu. Če se odločite, da postopka ne boste prekinili, ko pride do napake, morate izvesti stavek Resume, preden se vrnete na glavno kodo.

Vedeti, kdaj prezreti napake

V nekaterih primerih je povsem v redu, če napake prezrete. Takrat pride v poštev izjava On Error Resume Next.

Naslednji primer se vrti skozi vsako celico v izbranem obsegu in pretvori vrednost v njen kvadratni koren. Ta postopek ustvari sporočilo o napaki, če katera koli celica v izboru vsebuje negativno število ali besedilo:

Sub SelectionSqrt()
  Dim cell As Range
  Če TypeName(Selection) <> »Range« Nato zapustite Sub
  Za vsako celico v izboru
    cell.Value = Sqr(cell.Value)
  Naslednja celica
Končni sub

V tem primeru boste morda želeli preprosto preskočiti katero koli celico, ki vsebuje vrednost, ki je ne morete pretvoriti v kvadratni koren. Z uporabo struktur If-Then lahko ustvarite vse vrste zmožnosti preverjanja napak, vendar lahko oblikujete boljšo (in enostavnejšo) rešitev tako, da preprosto prezrete napake, ki se pojavijo.

Naslednja rutina to doseže z uporabo stavka On Error Resume Next:

Sub SelectionSqrt()
  Dim cell As Range
  Če TypeName(Selection) <> »Range« Nato zapustite Sub
  Ob napaki Nadaljuj naprej
  Za vsako celico v izboru
    cell.Value = Sqr(cell.Value)
  Naslednja celica
Končni sub

Na splošno lahko uporabite stavek On Error Resume Next, če menite, da so napake neškodljive ali nepomembne za vašo nalogo.


Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows Microsoft Word odpira datoteke v načinu samo za branje, zaradi česar jih je nemogoče urejati? Ne skrbite, metode so spodaj

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako odpraviti napake pri tiskanju nepravilnih dokumentov Microsoft Word Napake pri tiskanju dokumentov Word s spremenjeno pisavo, neurejenimi odstavki, manjkajočim besedilom ali izgubljeno vsebino so precej pogoste. Vendar pa ne

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Če ste med predstavitvijo uporabili pero ali označevalnik za risanje po diapozitivih PowerPoint, lahko risbe shranite za naslednjo predstavitev ali jih izbrišete, tako da boste naslednjič, ko ga pokažete, začeli s čistimi PowerPointovimi diapozitivi. Sledite tem navodilom za brisanje risb s peresom in označevalnikom: Brisanje črt ena na […]

Vsebina knjižnice slogov v SharePointu 2010

Vsebina knjižnice slogov v SharePointu 2010

Knjižnica slogov vsebuje datoteke CSS, datoteke Extensible Stylesheet Language (XSL) in slike, ki jih uporabljajo vnaprej določene glavne strani, postavitve strani in kontrolniki v SharePointu 2010. Če želite poiskati datoteke CSS v knjižnici slogov na založniškem mestu: Izberite Dejanja mesta→ Pogled Vsa vsebina spletnega mesta. Prikaže se vsebina spletnega mesta. Knjižnica Style se nahaja v […]

Oblikujte številke v tisoče in milijone v poročilih Excel

Oblikujte številke v tisoče in milijone v poročilih Excel

Ne preobremenjujte občinstva z ogromnimi številkami. V Microsoft Excelu lahko izboljšate berljivost svojih nadzornih plošč in poročil tako, da oblikujete svoje številke tako, da se prikažejo v tisočih ali milijonih.

Kako deliti in spremljati SharePointova spletna mesta

Kako deliti in spremljati SharePointova spletna mesta

Naučite se uporabljati SharePointova orodja za socialno mreženje, ki posameznikom in skupinam omogočajo komunikacijo, sodelovanje, skupno rabo in povezovanje.

Kako pretvoriti datume v julijanske oblike v Excelu

Kako pretvoriti datume v julijanske oblike v Excelu

Julijanski datumi se v proizvodnih okoljih pogosto uporabljajo kot časovni žig in hitra referenca za številko serije. Ta vrsta datumskega kodiranja omogoča trgovcem na drobno, potrošnikom in servisnim agentom, da ugotovijo, kdaj je bil izdelek izdelan in s tem starost izdelka. Julijanski datumi se uporabljajo tudi v programiranju, vojski in astronomiji. Drugačen […]

Kako ustvariti spletno aplikacijo Access

Kako ustvariti spletno aplikacijo Access

Spletno aplikacijo lahko ustvarite v Accessu 2016. Kaj je torej spletna aplikacija? No, splet pomeni, da je na spletu, aplikacija pa je le okrajšava za »aplikacijo«. Spletna aplikacija po meri je spletna aplikacija baze podatkov, do katere dostopate iz oblaka z uporabo brskalnika. Spletno aplikacijo gradite in vzdržujete v namizni različici […]

Vrstica za hitri zagon v SharePointu 2010

Vrstica za hitri zagon v SharePointu 2010

Večina strani v SharePointu 2010 prikaže seznam navigacijskih povezav v vrstici za hitri zagon na levi strani strani. Vrstica za hitri zagon prikazuje povezave do predstavljene vsebine spletnega mesta, kot so seznami, knjižnice, spletna mesta in strani za objavljanje. Vrstica za hitri zagon vključuje dve zelo pomembni povezavi: Povezava do vse vsebine spletnega mesta: […]

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Pri preprostih težavah reševalec v Excelu običajno hitro najde optimalne vrednosti spremenljivke reševalca za ciljno funkcijo. Toda v nekaterih primerih ima Solver težave pri iskanju vrednosti spremenljivke Solver, ki optimizirajo ciljno funkcijo. V teh primerih Solver običajno prikaže sporočilo ali sporočilo o napaki, ki opisuje ali razpravlja o težavi, ki […]