Obravnavanje napak VBA - Priročnik za ravnanje z napakami v Excelu VBA

Obdelava napak v programu Excel VBA

V delu VBA pri delu s kodami lahko naletimo na veliko različnih vrst napak in kako jih odpraviti, je znano kot Obravnavanje napak, zdaj lahko v sintaksi pride do napak, ki jih excel sam poudari, toda ko pride do napake kar je izven obsega ali kaj, kar ne obstaja, excel nam prikaže pojavno okno za isto, pomembno je vedeti, katera koda napake je za katero napako, da ugotovimo napako v kodi.

V programu Excel VBA med izvajanjem poljubnega nabora kod dobimo nekakšne napake. Nekatere od teh napak so sintaksne napake; nekatere so napake, ki jih ni mogoče izvršiti. Sintaksna napaka je, ko jo uporabnik naredi, v rdeči barvi označi sam Excel. Toda, če pride do kakršne koli druge napake med izvajanjem, kako bomo to odpravili in kako to presegli, bomo obravnavali v tem članku.

Poleg sintaksnih napak je treba med izvajanjem poljubnega nabora kod obravnavati tudi druge napake v času izvajanja. Najprej naj navedem primer, kako pride do druge napake med izvajanjem. Oglejte si spodnjo kodo,

To je vzorčna koda, ki bo po zagonu vrnila zapisano v funkciji msgbox. A kot lahko vidimo, da je v drugi vrstici kode 4/0, kar matematično ni mogoče, zato bo vrnil napako med izvajanjem. Izvedimo zgornjo kodo in si oglejte napako, ki jo bomo dobili.

To je napaka, ki jo dobimo med izvajanjem dane kode. Zdaj, kako ravnamo s to napako, je storil Error Handling.

Obstajata dva načina za obravnavo napak:

  1. Na napaki Pojdi in
  2. Na napaki Nadaljuj naprej.

Pojasnilo

Kot je razloženo zgoraj, imamo v VBA veliko vrst napak. Nekatere so sintakse, nekatere pa čas izvajanja. Sintaksne napake so že označene v rdeči barvi, na primer glejte spodnji posnetek zaslona,

Medtem ko je druga napaka med izvajanjem. V bistvu bo excel naredil naslednje tri stvari: bodisi bo pokazal napako ali jo bo prezrl, ali pa bo prikazal določen nabor navodil. Za izvajanje takšnih nalog moramo dati navodila, ki se imenujejo obravnava napak.

Kako ravnati z napakami v kodi VBA?

Primer # 1

Za prvi primer vzemimo za prikaz prvo kodo, ki smo jo vzeli. V zgornjem primeru smo videli, da koda pri drugi funkciji msgbox daje napako v času izvajanja.

Po odprtju podfunkcije napišite naslednjo kodo,

Koda:

Sub Sample () O napaki Nadaljuj naprej MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Zdaj, ko izvedemo zgornjo kodo, vidimo, da se vrstica kode, ki ima napako, ne izvrši. Excel preskoči to vrstico in nadaljuje v naslednji vrstici.

Obstaja še ena metoda za obvladovanje napake je VBA Goto Statement. Excel ponujamo kot cilj, kamor se odpravimo, ko ugotovi napako. Namesto prejšnje kode za ravnanje z napakami smo vstavili in zapisali naslednjo kodo,

Koda:

Podvzorec () O napaki Pojdi az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Če najde napako, vam kot cilj namenimo excel Az. Zdaj po sporočilu msgbox napišite še eno kodo, kot spodaj,

Koda:

Podvzorec () O napaki Pojdi na MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Končano: Zapri pod

Zdaj moramo destinacijo az določiti kot to, kar naj naredi, ko excel najde napako v kodi.

Koda:

Sub Sample () O napaki Pojdi na az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Končano: Izhod iz Sub az: MsgBox "To je napaka" & Err.Description End Sub

Zdaj, ko zaženemo to kodo, vidimo prikazan rezultat.

To je prvi rezultat v polju za sporočila in ker vemo, da imamo napako v naslednji vrstici kode, poglejmo rezultat, kaj bo dal Excel.

Zgornji opis napake v kodi nam pomaga natančno pokazati, v čem je prišlo do napake v naši kodi.

2. primer

Naučili smo se, kako ravnati z napakami v naših kodah. Oglejmo si še en primer, kako ravnati z napakami. Kot drugi primer upoštevajte naslednjo kodo.

Imamo nekoliko podobno napako iz primera 1. Napaka je v vrstici d = i / b. Zdaj bomo te napake obravnavali z uporabo dveh zgoraj pojasnjenih metod.

Po odprtju podfunkcije napišite naslednjo kodo,

Koda:

Sub Sample2 () O napaki Nadaljuj naprej bx Dim i Kot celo število, b Kot celo število, c Kot celo število, d Kot celo število i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d Konec Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Sub Sample2 () Na napaki Pojdi bx Dim i Kot celo število, b Kot celo število, c Kot celo število, d Kot celo število i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Izhod iz Sub bx: MsgBox "To je še ena napaka" & Err.Description End Sub

Zdaj, ko izvedemo kodo, lahko vidimo, da nam excel najprej da vrednost za C.

Zdaj v naslednjem koraku nas bo pozval, da smo ga navedli, ko naleti na napako.

Tako obravnavamo običajne napake med izvajanjem v programu Excel VBA.

Stvari, ki si jih je treba zapomniti

Pri ravnanju z napakami si moramo zapomniti nekaj stvari:

  1. Na napaki Nadaljuj naprej, prezre napako.
  2. On Error GoTo Daje Excelu cilj, ko naleti na napako.
  3. Opis se uporablja za prikaz natančne napake, ki se je zgodila uporabniku.

Zanimive Članki...