VBA eksis

VBA on viga on lihtne meetod ootamatute erandite käsitlemiseks Excel Macros-is. On teada, et me ei saa koodi ilma vigadeta kirjutada. Mõnikord võib suure koodi kirjutamine meile vea anda isegi kompileerimise ajal. Sellise olukorra vältimiseks lisame veateate, mis meile õige vastuse või veakoodi andmise asemel näitab meile tõrkekoodiga teadet. Näib, et saime oma arvutuse väljundi, kuid veakood trükitakse veakoodiga.

Kuidas kasutada Exceli VBA-d veaaruandes Excelis?

VBA-s on 3 tõrkeviisi. Mõistame erinevaid näiteid mõne näitega.

Näide nr 1

Esimene tõrgetüüp on koodi koostamise viga, mis ilmneb siis, kui kood on deklareerimata või võimatud muutujad. Et rohkem mõista, kasutame jaotuse lihtsat matemaatilist avaldist. Selleks minge VBA menüüsse Insert ja valige moodul, nagu allpool näidatud.

Nüüd avage alamkategooria ja lisage suvaline nimi. Kuna me kasutame tõrkeotsingut, oleme selle sama nimetanud.

 Sub OnError () Lõpp Sub 

Nüüd määratlege 2 või 3 täisarvu. Siin võetakse X ja Y täisarvudena.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna Lõpp-alam 

Nagu ülalpool arutatud, arvutame jagunemise matemaatilise avaldise. X jaoks paneme märgi nummerisse ja jagame selle arvuga 0. Ja Y on 20/2, mis on täisarv.

 Sub OnError () Tuhm X täisarvuna, Y täisarvuna X = Test / 0 Y = 20/2 Lõpp Sub 

Nüüd käivitage kood, kasutades klahvi F5 või klõpsates nuppu allpool näidatud viisil. Saame käitusaja vea 6, mis näitab teksti üle numbri viga.

Selle vea tühistamiseks lisame enne matemaatilise koodi kirjutamist ühe rea On Error Resume Next . See hüpib veakoodi, kuid me ei näe teise matemaatilise koodi tulemusi. See peidab tõrketeate ainult siis, kui allpool näidatud koodiread erinevad. Proovige nüüd ka koodi käivitada.

 Sub OnError () Tuhm X täisarvuna, Y täisarvuna vea korral Jätka järgmine X = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Selle vea tühistamiseks lisame enne matemaatilise koodi kirjutamist ühe rea On Error Resume Next . See hüpib veakoodi, kuid me ei näe teise matemaatilise koodi tulemusi. See peidab tõrketeate ainult siis, kui allpool näidatud koodiread erinevad. Proovige nüüd ka koodi käivitada.

Näide 2

Selles näites käsitleme seda matemaatilist jaotust, mis annab lõpmatu tulemuse, kuid kodeerimisel annab tulemuseks # DIV / 0. Selle demonstreerimiseks kaalume alamkategoorias veel ühte täisarvu Z koos X ja Y-ga, nagu allpool näidatud.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna Lõpp-alam 

Raamige kõik täisarvud X, Y ja Z matemaatilise jagamislausega ja selle printimiseks kasutage iga täisarvu tulemuse VBA funktsiooni MsgBox.

Allpool täisarvu X jaoks on jagatud 10 0, 20 2 ja 30 4-ga.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Nüüd käivitage kood klahviga F5 või käsitsi, nagu allpool näidatud.

Nagu näeme ülaltoodud ekraanipildil Run-time error 11, mis tähendab, et viga on seotud numbriga. Selle ületamiseks lisage üks rida On Error Resume Next enne matemaatilist avaldist, nagu allpool näidatud.

 Sub OnError () Tuhm X täisarvuna, Y täisarvuna, Z täisarvuna vea korral Jätka järgmine X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Kui kood käivitatakse, saame esimese täisarvu X korral nulli ja Y ja Z korral saame vastavad jagunemisvastused, nagu allpool näidatud.

Näide 3

Teist tüüpi viga kuvatakse siis, kui sisestame koodi vale sisestamise. Selleks kaalume 3 täisarvu X, Y ja Z, avades VBA alamkategooria, nagu allpool näidatud.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna Lõpp-alam 

Vaatleme nüüd ka sama matemaatilist jaotust, mida nägime ülaltoodud näites.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Koodi käivitamisel saame sama tõrketeate, mis kuvatakse käitusaja vea 11 korral.

Selle tõrke tühistamiseks kasutage teksti On Error GoTo sõnaga “Result, et jätta veateade vahele ja saada väljund, mis töötab hästi, nagu allpool näidatud.

 Sub OnError () Dim X X täisarvuna, Y täisarvuna, Z täisarvuna veal GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Nüüd käivitage kood uuesti. Saame sama tulemuse kui eelmises näites.

Tõrke korral aitab GoRo ZResult meil otse mainitud tulemuspunkti täisarvu hüpata, nagu me tegime täisarvu Z korral.

Näide 4

Kolmanda veatüübi korral, kui käivitame koodi ja VBA ei suuda koodirida mõista. Seda saab teha koodiga On Error Resume Next koos veaga MsgBox Err.Number . Vaatleme samu andmeid, mida on kasutatud ülaltoodud näidetes. Näeme jälle samu 3 täisarvu X, Y ja Z, nagu allpool näidatud.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna Lõpp-alam 

Ja tulemiväljundi printimiseks lubage väljundina kõigi täisarvude sõnumikastid.

 Sub OnError () Dim X täisarvuna, Y täisarvuna, Z täisarvuna X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Kui käitame kogu koodi, siis saame veateate matemaatilise tõrke käitusaja viga 11.

Selle tõrke tühistamiseks kasutame funktsiooni On Error Resume Next.

 Sub OnError () Tuhm X täisarvuna, Y täisarvuna, Z täisarvuna vea korral Jätka järgmine X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ja käivitage kood. See annab tulemuse kehtival matemaatilisel real, nagu allpool näidatud.

Nüüd lisage enne Z täisarvu jagamise matemaatilist avaldist ZResult- koodirida ja lisage koodi lõppu MsgBox Err.Number- kood, nagu allpool näidatud.

 Sub OnError () Tuhm X täisarvuna, Y täisarvuna, Z täisarvuna vea korral Jätka järgmine X = 10/0 Y = 20/2 ZTulemus: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Nüüd käivitage kood, kasutades klahvi F5 või vajutades esitusnuppu, nagu allpool näidatud.

Nagu näeme ülaltoodud ekraanipiltidelt. Esimesel teadete väljal on 0, mis tühistab vale matemaatilise avalduse. Teisel ja kolmandal on Y ja Z täisarvu jagamistulemus. Ja viimases sõnumikastis on käitusaja veakood 11, mis on tõenäoliselt X täisarvu jagamisväljendite veakood.

Plussid VBA eksimisel

  • Me võime arvutada mis tahes matemaatilise valemi, isegi kui see on vale.
  • Suuremate kodeerimisstruktuuride korral, kus on võimalusi või on tõrkeid, võib nende meetodite kasutamine anda õige tulemuse isegi koodiridade hulgas.
  • See annab parema tulemuse võrreldes tavaliste exceli arvutuste tulemustega.

Asjad, mida meeles pidada

  • Salvestage fail alati makro-aktiveeritud Exceli faili, et saaksime loodud VBA-koodi kasutada mitu ja mitu korda.
  • Enne mis tahes exceli nõude rakendamist pange alati kirjalik kood kokku.
  • Määrake vajadusel kirjutatud kood suvalisele nupule, et saaksime sellel nupul kiiresti klõpsata ja koodi käivitada.

Selle VBA veaga Exceli malli saate alla laadida siit - VBA veaga Exceli mall

Soovitatavad artiklid

See on Excel VBA eksimisjuhend. Siin arutasime, kuidas kasutada VBA tõrkeotsingut koos mõnede praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Kuidas kasutada VBA TRIM funktsiooni?
  2. Numbrivorming VBA-s
  3. Juhend Excel VBA-le, kui teete ringi
  4. Kuidas kasutada funktsiooni VBA Find?

Kategooria: