VBA-virheiden käsittely - Opas virheiden käsittelyyn Excel VBA: ssa

Excel VBA -virheiden käsittely

Kun työskentelemme koodien kanssa VBA: ssa, saatamme kohdata monia erityyppisiä virheitä, ja näiden virheiden vianmääritys tunnetaan nimellä virheenkäsittely, nyt syntaksissa voi olla joitain virheitä, jotka Excel itse korostaa, mutta kun on virheitä mikä on alueen ulkopuolella tai jotain, jota ei ole olemassa excel antaa meille ponnahdusikkunan samasta, on tärkeää tietää, mikä virhekoodi on mitä virhettä varten, jotta voimme tunnistaa virheen koodissa.

Excel VBA: ssa suoritamme jonkinlaisia ​​virheitä, kun suoritamme mitä tahansa koodisarjaa. Jotkut näistä virheistä ovat syntaksivirheitä; jotkut ovat virheitä, joita ei voida suorittaa. Syntaksi virhe on silloin, kun käyttäjä on tehnyt korostetaan punaisella värillä excel itse. Mutta kun on olemassa muunlaista ajoaikavirhettä, miten käsittelemme sitä ja miten pääsemme yli tämän, me käsittelemme tässä artikkelissa.

Syntaksivirheiden lisäksi muut ajoaikavirheet on käsiteltävä suoritettaessa mitä tahansa koodisarjaa. Ensinnäkin haluan antaa esimerkin siitä, miten toinen ajonaikainen virhe tapahtuu. Katso alla oleva koodi,

Tämä on mallikoodi, kun se suoritetaan, se palauttaa msgbox-funktiossa kirjoitetun. Mutta kuten näemme, että koodin toisella rivillä on 4/0, mikä ei ole mahdollista matemaattisesti, joten se palauttaa ajoaikavirheen. Suoritetaan yllä oleva koodi ja katsotaan virhe.

Tämä on virhe, jonka saamme suoritettaessa annettua koodia. Nyt miten käsittelemme tätä virhettä tekee virheenkäsittely.

Virheiden käsittelyyn on kaksi tapaa:

  1. On Error Goto, ja
  2. On Virhe Jatka Seuraava.

Selitys

Kuten yllä selitettiin, VBA: ssa esiintyy monenlaisia ​​virheitä. Jotkut ovat syntaksia ja toiset ajoaikaa. Syntaksivirheet on jo korostettu punaisella, esimerkiksi katso alla oleva kuvakaappaus,

Vaikka toinen on ajoaikavirheitä. Pohjimmiltaan excel tekee seuraavat kolme asiaa, joko näyttää virheen tai jättää kyseisen virheen huomiotta tai näyttää tietyt ohjeet. Tällaisten tehtävien suorittamiseksi meidän on annettava ohjeita, ja tätä kutsutaan virheiden käsittelyksi.

Kuinka käsitellä virheitä VBA-koodissa?

Esimerkki 1

Ensimmäisessä esimerkissä ottakaamme ensimmäinen koodi, jonka otimme esittelyksi. Yllä olevassa esimerkissä olemme nähneet, että koodi antaa ajoaikavirheen toisessa msgbox-toiminnossa.

Kirjoita seuraava koodi alitoiminnon avaamisen jälkeen,

Koodi:

Alinäyte () On Error Jatka Seuraava MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Nyt kun suoritamme yllä olevan koodin, näemme, että koodiriviä, jolla on virhe, ei suoriteta. Excel ohittaa kyseisen rivin ja jatkaa seuraavalla rivillä.

On toinen tapa käsitellä virhettä on VBA Goto Statement. Tarjoamme Excelin määränpäähän, johon mennä, kun se löytää virheen. Aikaisemman virhekäsittelykoodin sijaan lisäimme, kirjoitimme seuraavan koodin,

Koodi:

Alinäyte () On GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Annamme Excel Azin määränpääksi, johon mennä, jos se löytää virheen. Kirjoita msgboxin jälkeen toinen koodi kuten alla,

Koodi:

Alinäyte () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Done: Exit Sub

Nyt meidän on määritettävä kohde az, mitä sen pitäisi tehdä, kun excel löytää virheen koodista.

Koodi:

Alinäyte () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Done: Exit Sub az: MsgBox "This is a error" & Err.Description End Sub

Nyt kun suoritamme tämän koodin, näemme tuloksen.

Tämä on ensimmäinen viestikentän tulos, ja koska tiedämme, että meillä on virhe koodin seuraavalla rivillä, katsotaan tulos, mitä excel antaa.

Koodin yllä oleva err.description auttaa meitä osoittamaan tarkalleen, mikä virhe on tapahtunut koodissamme.

Esimerkki 2

Olemme oppineet käsittelemään virheitä koodeissamme. Katsotaanpa toinen esimerkki virheiden käsittelemisestä. Harkitse seuraavaa koodia toisena esimerkkinä.

Meillä on jonkin verran samanlainen virhe esimerkistä 1. Virhe on rivillä d = i / b. Nyt käsittelemme nämä virheet kahdella edellä selitetyllä tavalla.

Kirjoita seuraava koodi alitoiminnon avaamisen jälkeen,

Koodi:

Alinäyte2 () On Error Jatka Seuraava bx Dim i kokonaislukuna, b kokonaislukuna, c kokonaislukuna, d kokonaislukuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End 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:

Alinäyte2 () On Error GoTo bx Dim i Kokonaisluku, b Kokonaisluku, c Kokonaisluku, d Kokonaisluku i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Poistu Alibx: MsgBox "Tämä on toinen virhe" & Err.Description End Sub

Nyt kun suoritamme koodin, voimme nähdä, että excel antaa meille ensin arvon C.

Nyt toisessa vaiheessa se antaa meille kehotteen, jonka annoimme, kun se havaitsee virheen.

Näin käsittelemme normaalit ajonaikaiset virheet Excel VBA: ssa.

Muistettavaa

On muutamia asioita, jotka meidän on muistettava virheiden käsittelystä:

  1. Kun virhe jatkuu seuraavaksi, Ohittaa virheen.
  2. On Error -kohdassa GoTo Gives antaa erinomaisen määränpään kohdatessaan virheen.
  3. Kuvausta käytetään osoittamaan tarkka virhe, joka tapahtui käyttäjälle.

Mielenkiintoisia artikkeleita...