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

Excel VBA -virheiden käsittely

VBA: ssa, kun työskentelemme koodien kanssa, saatamme kohdata monia erityyppisiä virheitä ja kuinka näiden virheiden vianmääritys tunnetaan nimellä Virheenkäsittely, nyt syntaksissa voi olla joitain virheitä, jotka Excel itse korostaa sen, 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 suoritettaessa mitä tahansa koodisarjaa saadaan jonkinlaisia ​​virheitä. 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 jokin muu ajoaikavirhe, 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ä, kuinka toinen ajonaikainen virhe tapahtuu. Katso alla oleva koodi,

Tämä on esimerkkikoodi, kun suoritettu palauttaa msgbox-funktiossa kirjoitetun. Mutta kuten näemme, että koodin toisella rivillä on 4/0, mikä ei ole matemaattisesti mahdollista, 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ä, tapahtuu virhekäsittelyllä.

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 jotkut 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?

Voit ladata tämän VBA-virheenkäsittelyohjelman Excel-mallin täältä - VBA-virheiden käsittely Excel-mallipohjan

Esimerkki 1

Otetaan ensimmäisessä esimerkissä 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ä virhettä sisältävää koodiriviä ei suoriteta. Excel ohittaa kyseisen rivin ja jatkaa seuraavalla rivillä.

On toinen tapa käsitellä virhettä on vba Goto Statement, tarjoamme Excelille määränpään, johon mennä löydettäessä virhe. Aikaisemman virhekäsittelykoodin sijaan lisäimme, kirjoitimme seuraavan koodin,

Koodi:

 Alinäyte () On Error 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, tulos näkyy.

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 

Nyt kun suoritamme koodin, voimme nähdä, että se ohittaa toisen rivin ja näyttää vain C: n arvon.

Yllä oleva virheenkäsittelijä oli jatkoa seuraavaksi, nyt käytämme Go to jossa kerrotaan Excelille määränpään mennä, kun se havaitsee virheen. Kirjoita seuraava koodi muistiin

Koodi:

 Alinäyte2 () Käytössä virhe GoTo bx Dim i kokonaislukuna, b kokonaislukuna, c kokonaislukuna, d kokonaislukuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Bx on kohde, joka annetaan, kun se havaitsee virheen sen jälkeen, kun msgbox D on kirjoittanut seuraavan koodin,

Koodi:

 Alinäyte2 () Käytössä virhe GoTo bx Dim i kokonaislukuna, b kokonaislukuna, c kokonaislukuna, d kokonaislukuna i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Poistu alivalikosta 

Nyt meidän on määritettävä kohde Bx, mitä sen pitäisi tehdä, kun se havaitsee virheen. Kirjoita siis seuraava koodi,

Koodi:

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

Nyt kun suoritamme koodin, voimme nähdä, että Excel antaa ensin arvon C: lle.

Nyt toisessa vaiheessa se antaa meille kehotteen, jonka annoimme sille, 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. On Error Jatka Seuraava Ohittaa virheen.
  2. On Error -kohdassa GoTo Gives antaa erinomaisen määränpään kohdatessaan virheen.
  3. Kuvausta käytetään osoittamaan tarkka virhe käyttäjälle.

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