Upravljavci napak za makre Excel

Upravljavci napak vam omogočajo, da določite, kaj se zgodi, ko pride do napake, medtem ko se vaša koda makra Excela izvaja. Obravnavalci napak so vrstice, podobne naslednjim:

Ob napaki Pojdi na MyError

Brez obdelovalcev napak bo vsaka napaka, ki se pojavi v vaši kodi, pozvala Excel, da aktivira sporočilo o napaki, ki je manj koristno, ki običajno ne bo jasno povedalo, kaj se je zgodilo. Vendar pa se lahko s pomočjo obdelovalcev napak odločite, da napako prezrete ali pa elegantno zapustite kodo z lastnim sporočilom uporabniku.

Obstajajo tri vrste stavkov On Error:

  • Ob napaki GoTo SomeLabel: koda skoči na določeno oznako.

  • Ob Error Resume Next: napaka je prezrta in koda se nadaljuje.

  • Ob napaki GoTo 0: VBA se ponastavi na običajno vedenje preverjanja napak.

Ob napaki Pojdi na SomeLabel

Včasih napaka v vaši kodi pomeni, da morate elegantno zapustiti postopek in uporabnikom dati jasno sporočilo. V teh situacijah lahko uporabite stavek On Error GoTo, da poveste Excelu, naj skoči na določeno vrstico kode.

Na primer, v naslednjem majhnem koščku kode Excelu poveste, naj vrednost v celici A1 deli z vrednostjo v celici A2, nato pa odgovor postavi v celico A3. enostavno. Kaj bi lahko šlo narobe?

Podmakro1()
Obseg("A3").Vrednost = Obseg("A1").Vrednost/Obseg("A2").Vrednost
Končni sub

Kot kaže, lahko gresta dve veliki stvari narobe. Če celica A2 vsebuje 0, dobite napako deljenja z 0. Če celica A2 vsebuje neštevilsko vrednost, dobite napako neujemanja vrste.

Če se želite izogniti neprijetnemu sporočilu o napaki, lahko Excelu poveste, da ob napaki želite, da izvajanje kode skoči na oznako, imenovano MyExit.

V naslednji kodi oznaki MyExit sledi sporočilo uporabniku, ki daje prijazen nasvet namesto neprijetnega sporočila o napaki. Upoštevajte tudi Exit Sub vrstico pred oznako MyExit, ki zagotavlja, da bo koda preprosto zapustila, če ne bo prišlo do napake:

Podmakro1()
Ob napaki GoTo MyExit
Obseg("A3").Vrednost = Obseg("A1").Vrednost/Obseg("A2").Vrednost
Izhod Sub
moj izhod:
MsgBox "Prosimo, uporabite veljavne številke, ki niso nič"
Končni sub

Ob napaki Nadaljuj naprej

Včasih želite, da Excel prezre napako in preprosto nadaljuje z izvajanjem kode. V teh primerih lahko uporabite stavek On Error Resume Next.

Naslednji del kode je na primer namenjen brisanju datoteke z imenom GhostFile.exe iz imenika C:Temp. Ko je datoteka izbrisana, lepo sporočilo uporabniku pove, da datoteke ni več:

Podmakro1()
Ubijte "C:TempGhostFile.exe"
MsgBox "Datoteka je bila izbrisana."
Končni sub

Koda deluje odlično, če res obstaja datoteka za brisanje. Če pa iz nekega razloga datoteka, imenovana GhostFile.exe, ne obstaja v pogonu C:Temp, se prikaže napaka.

V tem primeru vam je vseeno, če datoteke ni, ker jo boste vseeno izbrisali. Tako lahko preprosto prezrete napako in nadaljujete s kodo.

Z uporabo stavka On Error Resume Next se koda izvaja ne glede na to, ali ciljna datoteka obstaja ali ne:

Podmakro1()
Ob napaki Nadaljuj naprej
Ubijte "C:TempGhostFile.exe"
MsgBox "Datoteka je bila izbrisana."
Končni sub

Ob napaki Pojdi na 0

Pri uporabi določenih stavkov o napakah bo morda treba ponastaviti vedenje preverjanja napak v VBA. Če želite razumeti, kaj to pomeni, si oglejte naslednji primer.

Tukaj najprej želite izbrisati datoteko z imenom GhostFile.exe iz imenika C:Temp. Da bi se izognili napakam, ki lahko izvirajo iz dejstva, da ciljna datoteka ne obstaja, uporabite stavek Ob napaki Nadaljuj naprej. Po tem poskusite narediti nekaj sumljive matematike tako, da delite 100/Mike:

Podmakro1()
Ob napaki Nadaljuj naprej
Ubijte "C:TempGhostFile.exe"
Obseg("A3").Vrednost = 100 / "Mike"
Končni sub

Zagon tega dela kode bi moral ustvariti napako zaradi mehke matematike, vendar ne. zakaj? Ker je bilo zadnje navodilo, ki ste ga dali kodi, On Error Resume Next. Vsaka napaka, ki se pojavi po tej vrstici, je dejansko prezrta.

Če želite odpraviti to težavo, lahko uporabite stavek On Error GoTo 0 za nadaljevanje običajnega preverjanja napak:

Podmakro1()
Ob napaki Nadaljuj naprej
Ubijte "C:TempGhostFile.exe"
Ob napaki Pojdi na 0
Obseg("A3").Vrednost = 100 / "Mike"
Končni sub

Ta koda bo prezrla napake do stavka On Error GoTo 0. Po tej izjavi se koda vrne na običajno preverjanje napak in sproži pričakovano napako, ki izhaja iz mehke matematike.


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 […]