VBA tõrkeotsing | Juhend vigade käsitsemiseks Exceli VBA-s

Exceli VBA tõrkeotsing

VBA-s, kui töötame koodidega, võib ilmneda palju erinevaid veatüüpe ja nende tõrkeotsingut nimetatakse veakäsitluseks, nüüd võib süntaksis esineda mõningaid vigu, mis Excel ise selle esile toob, kuid kui on mõni viga mis jääb vahemikust välja või miski, mida pole olemas, pakub exceli samale, on oluline teada, milline veakood millise vea jaoks on, et viga koodis tuvastada.

Mis tahes koodikomplekti käivitamisel saame Exceli VBA-s mingisuguseid vigu. Mõned neist vigadest on süntaksivead, mõned on vead, mida pole võimalik käivitada. Süntaksiviga on siis, kui kasutaja on selle teinud, on Excel ise punase värviga esile tõstetud. Kuid kui on mingisugust muud tüüpi käitamisviga, käsitleme selles artiklis seda, kuidas sellega toime tulla ja kuidas sellest kaugemale jõuda.

Peale süntaksivigade tuleb muid käitamisvigu käsitleda mis tahes koodide komplekti käivitamisel. Esiteks lubage mul tuua näide selle kohta, kuidas teine ​​käitustõrge ilmneb. Vaadake allolevat koodi,

See on näidiskood, kui käivitamisel tagastatakse funktsioon, mis on kirjutatud msgboxis. Kuid nagu näeme, et koodi teisel real on 4/0, mis pole matemaatilises mõttes võimalik, tagastab see tööaja vea. Käivitame ülaltoodud koodi ja näeme viga, mille saame.

Selle vea saame antud koodi käivitamisel. Nüüd, kuidas seda viga lahendada, teeb veakäsitlus.

Vigade käsitlemiseks on kaks meetodit:

  1. On Error Goto ja
  2. On Error Jätka järgmist.

Selgitus

Nagu eespool selgitatud, saame VBA-s mitut tüüpi vigu, mõned neist on süntaks ja mõned on tööaeg. Süntaksivead on juba punases värvitoonis esile tõstetud, vt näiteks ekraanipilt,

Kuigi teine ​​on tööaja vead. Põhimõtteliselt teeb Excel järgmised kolm asja, kas näitab viga või ignoreerib seda viga või kuvab teatud juhiste komplekti. Selliste ülesannete täitmiseks peame andma juhiseid ja seda nimetatakse veakäsitluseks.

Kuidas VBA koodis esinevaid vigu käsitleda?

Selle VBA tõrke käitlemise Exceli malli saate alla laadida siit - VBA tõrge Exceli malli käitlemisel

Näide 1

Esimese näite jaoks võtkem esimene demonstratsiooniks võetud kood. Ülaltoodud näites oleme näinud, et kood annab msgboxi teise funktsiooni korral ajavea.

Pärast alafunktsiooni avamist kirjutage järgmine kood,

Kood:

 Alamproov () vea korral Jätka järgmist MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Nüüd, kui täidame ülaltoodud koodi, näeme, et veaga koodirida ei käivitata. Excel jätab selle rea vahele ja jätkab järgmisel real.

Vea käsitlemiseks on veel üks meetod vba Goto avaldus, pakume Exceli jaoks sihtkohta, kuhu vea leidmisel minna. Varasema veakäsitluse koodi asemel sisestasime järgmise koodi,

Kood:

 Alamproov () Vea korral GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Anname Exceli Azsi sihtkohaks, kuhu minna, kui see leiab vea. Pärast msgboxi kirjutage järgmine kood nagu allpool,

Kood:

 Alamproov () Vea korral GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Valmis: Exit Sub 

Nüüd peame määratlema sihtkoha az, mida ta peaks tegema, kui excel leiab koodist vea.

Kood:

 Alamproov () Vea korral GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Valmis: Exit Sub az: MsgBox "See on viga" & Viga. 

Nüüd, kui käivitame selle koodi, näeme tulemust.

See on esimene msg-kasti tulemus ja kuna me teame, et meie koodi järgmisel real on viga, vaatame tulemust, mida excel annab.

Koodis olev err.description aitab meil täpselt näidata, mis viga meie koodis ilmnes.

Näide 2

Oleme õppinud, kuidas oma koodides vigu käsitleda. Vaatame veel ühte näidet vigade käsitlemiseks. Vaadake järgmist koodi meie teise näitena.

Meil on mõnevõrra sarnane viga näites 1. Viga on real d = i / b. Nüüd käsitleme neid tõrkeid, kasutades kahte ülalkirjeldatud meetodit.

Pärast alafunktsiooni avamist kirjutage järgmine kood,

Kood:

 Alamproov2 () Vea korral jätkub järgmine bx Dim i täisarvuna, b täisarvuna, c täisarvuna, d täisarvuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Nüüd, kui me oma koodi täidame, näeme, et see ignoreerib teist rida ja kuvab lihtsalt C väärtuse.

Järgmine veahaldur oli järgmine, jätkame nüüd käsku Mine, kuhu ütleme vea ilmnemisel Excelile sihtkohta minema. Kirjutage üles järgmine kood,

Kood:

 Alamvalim2 () Vea korral GoTo bx Dim i täisarvuna, b täisarvuna, c täisarvuna, d täisarvuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Bx on sihtkoht, mis antakse, kui ta leiab vea pärast seda, kui msgbox D kirjutab üles järgmise koodi,

Kood:

 Alamvalim2 () Vea korral GoTo bx Dim i täisarvuna, b täisarvuna, c täisarvuna, d täisarvuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: väljuge alamastmest 

Nüüd peame määratlema sihtkoha Bx, mida ta peaks tegema, kui ilmneb tõrge. Nii et kirjutage järgmine kood,

Kood:

 Alamvalim2 () Vea korral GoTo bx Dim i täisarvuna, b täisarvuna, c täisarvuna, d täisarvuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: väljuge alambx: MsgBox "See on veel üks viga" ja vea kirjelduse lõigu alam 

Nüüd koodi käivitades näeme, et Excel annab meile kõigepealt C väärtuse.

Nüüd teises etapis annab see meile viivituse, mille andsime talle vea ilmnemisel.

Nii käsitleme Exceli VBA tavapäraseid käitamisvigu.

Asjad, mida meeles pidada

Veakäsitluse puhul peame meeles pidama mõnda järgmist:

  1. On Error Jätka järgmist Eirab viga.
  2. Sees vea korral tõendab GoTo Gives vea ilmnemisel suurepärase sihtkoha.
  3. Kirjeldust kasutatakse kasutajale ilmnenud täpse vea kuvamiseks.

$config[zx-auto] not found$config[zx-overlay] not found