VBA päällä virhe Goto 0 - Kuinka käyttää virheitä GoTo 0 Excel VBA: ssa?

Sisällysluettelo

Excel VBA On Error Goto 0

VBA On Error GoTo 0 on virheenkäsittelijä, jota käytetään poistamaan käytössä oleva virhekäsittelijä menettelystä. Sitä kutsutaan virhekäsittelijän estoksi.

Virheenkäsittely millä tahansa ohjelmointikielellä on mestarikurssi, jonka kaikkien koodereiden on ymmärrettävä. Myös VBA-ohjelmointikieli, ja tällä ohjelmointikielellä on myös virhekäsittelytekniikoita. ”On Error Resume Next” -toiminto ottaa virhekäsittelijän käyttöön ja ”On Error GoTo 0” poistaa käytöstä virhekäsittelijän.

Sekä On On Resume Next Next että On On GoTo 0 ovat pareja, joita on käytettävä yhdessä koodin tehokkuuden parantamiseksi. Virheen käsittelemiseksi meidän on aloitettava lauseesta ”On Error Resume Next” ja lopetettava tämä virhekäsittelijä. Meidän on käytettävä lausetta ”On Error GoTo 0”.

Näiden lausekkeiden väliin kirjoitettu viivakoodi jättää huomiotta kaikenlaisen menettelyssä tapahtuneen virheen.

Kuinka käyttää On GoTo 0 -lauseketta?

Katso esimerkiksi alla oleva koodi.

Koodi:

Sub On_ErrorExample1 () Taulukot ("Sheet1"). Valitse alue ("A1"). Arvo = 100 laskentataulukkoa ("Sheet2"). Valitse alue ("A1"). Arvo = 100 End Sub

Mitä yllä oleva koodi tekee, se valitsee ensin laskentataulukon nimeltä "Sheet1" ja soluun A1 se lisää arvon 100.

Koodi:

Laskentataulukot ("Sheet1"). Valitse Range ("A1"). Arvo = 100

Sitten se valitsee laskentataulukon nimeltä "Arkki2" ja lisää saman arvon.

Koodi:

Laskentataulukot ("Sheet2"). Valitse Range ("A1"). Arvo = 100

Nyt minulla on alla olevat taulukot työkirjassani.

Ei ole arkkeja nimeltä "Arkki1" ja "Arkki2". Kun suoritamme koodin, siinä on alla olevan kaltainen virhe.

Koska taulukkoa, jonka nimi on "Arkki1", ei ole, se on havainnut virheellisen "Alaindeksi alueen ulkopuolella" -virheen. Tämän virheen käsittelemiseksi lisätään virheenkäsittelijän lause “On Error Resume Next” makron yläosaan.

Koodi:

Sub On_ErrorExample1 () On Error Jatka seuraavia laskentataulukoita ("Sheet1"). Valitse alue ("A1"). Arvo = 100 laskentataulukkoa ("Sheet2"). Valitse alue ("A1"). Arvo = 100 End Sub

Suorita nyt koodi ja katso mitä tapahtuu.

Se ei anna virheilmoituksia, koska virheenkäsittelylaite On Error Jatka seuraavaksi on käytössä.

Kuvittele skenaario, jossa meidän on jätettävä virhe huomioimatta, jos laskentataulukko "Sheet1" ei ole käytettävissä, mutta meidän on ilmoitettava, jos taulukkoa "Sheet2" ei ole.

Koska olemme lisänneet On Error Resume Next -sivun yläosaan, se on alkanut käsitellä virhettä, mutta samalla meidän on määritettävä, kuinka monta riviä meidän on jätettävä huomioimatta tämä virhe.

Tässä esimerkissä meidän on vain jätettävä huomioimatta ensimmäisen laskentataulukon, mutta toisen taulukon virhe. Virheen on tapahduttava, jos taulukkoa "Sheet2" ei ole. Joten ensimmäisen laskentataulukon koodin jälkeen virhe poistetaan käytöstä rivi On Error GoTo 0.

Koodi:

Sub On_ErrorExample1 () On On Virhe Jatka seuraavia laskentataulukoita ("Sheet1"). Valitse alue ("A1"). Arvo = 100 On Error GoTo 0 -laskentataulukoita ("Sheet2"). Valitse Range ("A1"). Arvo = 100 End Sub

Suorita nyt koodi rivi riviltä nähdäksesi vaikutus painamalla F8-näppäintä.

Nyt kun painat F8-näppäintä, kun koodin suoritus siirtyy seuraavalle riville, aktiivinen linjatehtävä suoritetaan. Nyt aktiivinen rivi (keltaisen värinen viiva) on ”On Error Resume Next” -virheenkäsittelijä, ja virhekäsittelijä otetaan käyttöön.

Nyt tapahtuu virhe. Se ohitetaan, kunnes se suorittaa virheenkäsittelijän, poistaa koodin ” On Error GoTo 0 ”.

Edellisessä yrityksessä olemme havainneet virheitä, mutta paina F8-näppäintä vielä kerran ja näet taika.

Ilman minkäänlaista virhettä se on aloittanut koodin suorittamisen, vaikka taulukkoa "Sheet2" ei olisikaan valittavissa. Paina nyt F8 uudelleen.

Koska taulukkoa1 ei ollut, se ei voi lisätä arvoa A1-soluun arvona 500, mutta mitä se tekee, se lisää arvon 500 soluun A1 sen mukaan, kumpi laskentataulukko on aktiivinen. Aktiivinen arkkini koodia suoritettaessa oli ”Sheet3”, joten arvo 100 lisätään soluun A1.

Nyt aktiivinen koodirivi on ” On Error GoTo 0 ” painamalla F8-näppäintä. Tämä rivitehtävä suoritetaan.

Koska ”On Error GoTo 0” suoritetaan, se on pysäyttänyt virhekäsittelyn ja alkaa jälleen näyttää virheitä, jos niitä esiintyy. Paina F8-näppäintä ja katso virhe.

Edellisessä tapauksessa ilman On Error GoTo 0 -ohjelmaa se on ohittanut myös tämän virheen, mutta koska olemme lisänneet virheenkäsittelijän eston, se on alkanut näyttää virheen uudelleen.

Muistettavaa täällä

  • Sekä On Error Resume Next että On Error GoTo 0 on käytettävä ” Virheenkäsittelijän mahdollistimena ” ja “ Virheenkäsittelijän estona ”.
  • Mikä tahansa näiden kahden lauseen välinen koodirivi havaitsee virheen, joka ohitetaan.
  • Jos On On Go GoTo 0 -lauseke, niin alimenettelystä poistumisen jälkeen virhekäsittelijä poistetaan käytöstä.

Mielenkiintoisia artikkeleita...