VBA ob napaki GoTo - Vrste izjav o napakah v VBA

Excel VBA ob napaki GoTo

Napake so sestavni del katerega koli kodirnega jezika in makri VBA se ne razlikujejo od tega. Po mojem mnenju je ugotovitev, zakaj pride do napake, 90% opravljenega dela, 10% pa je v tem, kako to napako odpraviti. V vsakem kodirnem jeziku kodirniki uporabljajo svoj način ravnanja z napakami pri svojem kodiranju, zato tudi mi uporabljamo kodo v VBA. Pogosto moramo napako prezreti ali pogosto, ko se napaka pokaže na določenih stvareh. »Na napaki« je stavek, ki ga moramo uporabiti v VBA za obravnavo napak.

Ta izjava ima tri vrste izjav, spodaj pa je seznam.

  1. Ob napaki Pojdi na 0
  2. Ob napaki Pojdi (oznaka)
  3. Na napaki Nadaljuj naprej

V tem članku bomo videli, kako se ti trije stavki uporabljajo v kodiranju VBA za obdelavo kakršnih koli napak.

Kako uporabiti VBA o izjavah o napakah?

# 1 - Ob napaki Nadaljuj naprej

Kot piše v izjavi, »On Error Resume Next« pomeni, da pride do napake v naslednji vrstici kode »nadaljuj« z ignoriranjem kode vrstice napake. Zdaj pa si oglejte spodnjo kodo.

V spodnji kodi sem omenil imena delovnih listov in prosil, da vnesete vrednost v prvo celico kot »Preskušanje napak«.

Koda:

Sub On_Error_Resume_Next () Delovni listi ("Ws 1"). Izberite obseg ("A1"). Value = "Preskušanje napak" Delovni listi ("Ws 2"). Izberite obseg ("A1"). Value = "Delovni listi za testiranje napak" ( "Ws 3"). Izberite obseg ("A1"). Value = "Preskušanje napak" Delovni listi ("Ws 4"). Izberite obseg ("A1"). Value = "Preskus napake" End Sub

Zdaj imam v delovnem zvezku spodnje delovne liste.

  • Izvedel bom kodo in videl, kaj se bo zgodilo.
  • Prišlo je do napake »Subscript Out of Range«, kliknite »Odpravljanje napak«, da vidite, v kateri vrstici smo dobili napako.
  • V vrstici »Delovni listi (« Ws 3 »). Izberite« smo dobili napako. To je zato, ker v našem delovnem zvezku ni delovnega lista z imenom »Ws 3«, zato je prišlo do napake.

V takih primerih bomo morda želeli ignorirati napako in nadaljevati izvajanje kode v naslednjo vrstico. Tu se pojavi slika našega upravljalca napak »Ob nadaljevanju napake«.

  • Vse, kar moramo storiti, je, da na začetek makra dodamo vrstico »On Error Resume Next«.

Zdaj zaženite to kodo in ne bo prikazala nobenega sporočila o napaki, ker kadar koli koda naleti na napako, bo napako prezrla in nadaljevala v naslednjo vrstico kode.

# 2 - Ob napaki Pojdi na 0

To ni orodje za obdelavo napak, temveč orodje za omogočanje sporočil o napakah, potem ko sporočilo o napaki onemogočimo z izjavo »V nadaljevanju nadaljevanja napake«.

Ko uporabite izjavo »Nadaljuj naprej«, začnejo makri VBA prezreti kakršno koli napako in nadaljujejo z naslednjo vrstico kod. Toda ne želimo, da se to dogaja ves čas, ker nekatere napake moramo namerno prezreti, druge pa potrebujemo obvestilo.

Če kateri koli določen nabor kode vrne napako v tem bloku kode, moramo le prezreti napake v drugih delih kode. Napake ne želimo prezreti.

  • Oglejte si spodnjo sliko, kako uporabljate izjavo "Na napako gre 0".

Zdaj bodo napake prezrte, dokler koda ne najde omogočevalca obvestila o napaki »Na napako gre 0«, ko ta vrstica kode izvede makre nazaj v normalno stanje in začne sprožati sporočila o napakah kot običajno.

# 3 - Napaka GoTo Label

Videli smo, kako prezreti napako in kako omogočiti nazaj obvestilo o napaki. Zdaj lahko s to metodo preidemo na določeno vrstico kode.

Pri tej metodi »Oznaka« pomeni, da lahko tej nalepki damo katero koli ime, enako oznako pa moramo navesti tudi v zahtevani vrstici kode.

Na primer, poglejte isto kodo iz zgornjega primera.

Zdaj zaženimo kodno vrstico po vrstici s pritiskom na funkcijsko tipko F8.

Zdaj bo makro prebral stavek upravljavca napak; pritisnite tipko F8 in izvedite prvo kodo dveh delovnih listov.

Zdaj bo makro izvedel tretjo kodo delovnega lista, ki je v delovnem zvezku ni, pritisnite tipko F8 in poglejte, kaj se bo zgodilo.

Ker je makro naletel na napako v spodnji vrstici kode, je preskočil na oznako »ErrorMessage«, ki je bila opisana v stavku »On Error GoTo (Label)«.

Zdaj bo v sporočilu prikazano sporočilo kot »Napaka in izhod iz makra«.

Stvari, ki si jih je treba zapomniti

  • Vba On Error GoTo 0 bo znova omogočila obvestilo o napaki, zato ne pozabite dodati tega po dobavi upravljalca napak.
  • Popolnoma se morate prepričati, v katerem delu kode želite prezreti napako, zato priprite obdelovalec napak samo za ta blok kode.

Zanimive Članki...