VBA Viga Jätka Järgmine - Näpunäited VBA-st tõrke kohta Jätkake järgmisena

Lang L: none (table-of-contents):

Anonim

Excel VBA tõrke korral jätkatakse järgmisena

Veakäsitlus on väga kasulik ja oluline mehhanism selliste keelte programmeerimiseks nagu VBA tõrkekontroll või tõkestamine, mis on üks osa tõrkekäsitlusest, mis tähendab tõhusate ja oluliste meetmete võtmist VBA-skripti sees, et vältida tõrketeate ilmumist. Excel VBA On Error Resume Next avalduses ignoreeritakse tõrget põhjustavat koodirida ja jätkatakse või suunatakse täitmine veale põhjustanud reale järgnevale järgmisele reale.

MÄRKUS . Vea korral jätkates järgmine avaldus ei paranda käitusvigu, see on viga, ignoreerides seda, kus VB programmi täitmine jätkub rivilt, mis põhjustas käitusvea.

Põhimõtteliselt kasutatakse järgmisena sisselülitatud tõrke jätkamisel, kui soovite viga ignoreerida ja jätkata koodi täitmist või jätkata seda järgmises lahtris.

VBA tüübid VBA-s

Allpool on toodud erinevad tüüpi vead VBA-s:

  1. Süntaksiviga või parsimisviga.
  2. Kompileerimise või kompileerimise viga.
  3. Runtime Error.
  4. Loogiline viga.

Ülaltoodud vigu saab parandada koodis silumis- ja veateadete abil. Runtime Error saab ära hoida funktsiooni On Error Resume Next abil.

VBA Runtime Error:

Enne sisselülitatud vea jätkamise järgmise selgitust peaksite olema teadlik käitustõrgetest, kui avalduses on võimatuid matemaatilisi avaldusi või termineid, siis ilmneb see käitustõrge.

Näpunäiteid Exceli VBA tõrke kohta Jätkake järgmisena

Allpool on erinevad näited veaotsingu jätkamise kohta järgmiselt Excelis VBA:

Selle VBA tõrkeotsingul jätkates järgmise Exceli malli saate alla laadida siit - VBA tõrke korral jätkatakse järgmise Exceli malliga

VBA Viga jätkub järgmine - näide # 1

Siin eiratakse viga ja koodi täitmine liigub edasi. Allpool mainitud näites ei saa 6 jagada nulliga, kui käivitate seda sisestuseta veateade Jätka järgmine lause sisestamisel, ilmneb allpool mainitud käitustõrge.

Kood:

 Sub RUNTIME_1 () MsgBox 6/0 End Sub 

Kui pärast SUB-avaldust sisestatakse koodi ülaosas sisselülitatud vea korral Jätka järgmine, ignoreerib see käitustõrget ja liigub järgmisele avaldusele, tulemuseks on väljund 6/2 (hüpikteade koos selle tulemusega).

Kood:

 Sub RUNTIME_2 () On Error Resume Next MsgBox 6/0 MsgBox 6/2 Sub Sub 

VBA Viga jätkub järgmine - näide # 2

Saan kasutada koodi On Error Resume Next järgmises koodis algusest lõpuni. Allpool nimetatud näites pean tegema 3 arvutuse st

9/3 =?

9/0 =?

9/2 =?

Ülalnimetatud näites võite jälgida teist arvutust, kus ühtegi arvu ei saa nulliga jagada, st teises etapis ei saa 9 jagada nulliga. Oletame, et kui käivitate makro ilma sisestuseta veateate jätkamise järgmisele sisestusele, saan nüüd koodi käivitada samm-sammult või klahvi F8 abil, et mõista, kuidas see töötab.

Nüüd käivitan ülaltoodud koodi, klõpsates samm-sammult suvandit Into või F8-klahvi. Kopeerin lihtsalt ülaltoodud koodi ja hakkan seda samm-sammult käitama, sest arvutuse esimese sammuna ilmub 3. teade.

Kood:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Kui ma käitan teist koodirida, ilmneb allpool nimetatud käitustõrge koodi teises etapis, kus ühtegi numbrit ei saa nulliga jagada, st 9 ei saa teises etapis jagada nulliga.

Kood:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Nüüd, kui ma isegi klõpsan silumisel, ei saa see edasi liikuda, kus mind suunatakse teisele koodireale (see tõstetakse esile kollase värviga), kus ma pean paranduse tegema. Niisiis, kui siin edasi klõpsata suvandil Step Into või klahvil F8, siis selle koodi kolmandat arvutust ei teostata.

Selle käitusvea parandamiseks või käsitlemiseks pean kasutama või käivitama teise koodi kohal või alajaotuse all oleva koodi alguses avalduse OnError Resume Next . nii et see jätab selle koodirea vahele ja liigub koodi kolmandale etapile ning arvutab väärtuse.

Kood:

 Sub RUNTIME_30 () MsgBox 9/3 On Error Resume Next MsgBox 9/0 MsgBox 9/2 End Sub 

VÕI

 Sub RUNTIME_31 () On Error Resume Next MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub Sub 

Nüüd olen lisanud koodile järgmise avalduse vea jätkamise korral, kus saab kasutada mõnda ülaltoodud koodi. Kui käivitate selle samm-sammult, saate kahesõnumilise hüpikakna, üks on väljundi esimene kood ja kolmas kood arvutus. On Error Resume (Järgmisel) ignoreerib teise koodi käitusviga ja liigub edasi kolmandasse koodi.

VBA Viga jätkub järgmine - näide # 2

Järgmisena näeme sisselülitatud vea jätkamise kombinatsiooni tõrkega GoTo 0. Allolevas koodis ignoreerib see vigu, kuni jõuab väljal Viga GoTo 0 . Pärast On Error GoTo 0 väljavõtet läheb kood tagasi või jätkub tavapärase tõrkekontrolliga ja käivitab eeldatava tõrke.

Kood:

 Sub onError_Go_to_0_with_Resume_next () Viga Jätka Järgmine tapmine "C: TempFile.exe" Viga GoTo 0 vahemik ("A1"). Väärtus = 100 / "PETER" End Sub 

Ülaltoodud koodi käivitamisel kuvatakse jagamisviga, st tüübi sobimatus (arvväärtust ei saa tekstiga jagada).

Nüüd saate oma töövihiku salvestada „Exceli makrofunktsioonidega töövihikuna”. Klõpsates töölehe vasakus nurgas nupul Salvesta nagu.

Selle exceli faili uuesti avamisel võite kasutada allpool nimetatud kiirklahvi, st

Funktsioon + Alt + F11 kiirklahv aitab teil pääseda juurde kõigile töövihiku loodud makrokoodidele. Funktsioon + Alt + F8 kiirklahv aitab teil avada dialoogiboksi Makro, mis sisaldab kõiki makro nimesid, kus saate käivitada valitud makrokoodi.

Asjad, mida meeles pidada

  • Käitusaja viga jääb vaikselt lõksu ja salvestatakse globaalsesse Err-objekti
  • On Error Resume (Järgmine viga) Jätkamine Järgmine takistab tavaliselt koodi täitmise katkestamist.
  • Veaobjekti atribuudid (Err Object) kustutatakse automaatselt, kui vigade töötlemise rutiinis kasutatakse Resume Next

Soovitatavad artiklid

See on juhend VBA-st vigu jätkates. Siin käsitleme VBA Excelis erinevaid tõrke tüüpe koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA makrode täielik juhend
  2. VBA DateDiff (näited Exceli malliga)
  3. Kuidas kasutada eesmärgiotsimist VBA-s?
  4. VBA-kaitse leht süntaksi abil
  5. VBA keskkond