Excel VBA On Error jatkaa seuraavaksi

Virheenkäsittely on erittäin hyödyllinen ja merkittävä mekanismi ohjelmointikieleille, kuten VBA-virheenhallinta tai ehkäisy, joka on osa virheenkäsittelyä, mikä tarkoittaa tehokkaiden ja merkittävien toimenpiteiden toteuttamista VBA-komentosarjan sisällä virheiden esiintymisen välttämiseksi. Excel VBA On Error Resume Next -käsky jättää virhettä aiheuttavan koodirivin huomiotta ja jatkaa tai reitittää suorituksen seuraavalle riville, joka aiheutti virheen.

HUOMAUTUS: Virheen jatkamisella Seuraava lause ei korjaa ajonaikaisia ​​virheitä, se on virhe, jossa jätetään huomioimatta siitä, missä VB-ohjelman suorittaminen jatkuu riviltä, ​​joka on aiheuttanut ajonaikaisen virheen.

Pohjimmiltaan Seuraava virheen jatkaminen -toimintoa käytetään, kun haluat sivuuttaa virheen ja jatkaa tai jatkaa koodin suorittamista seuraavaan soluun.

VBA-virheet

Alla on erityyppiset virheet VBA: ssa:

  1. Syntaksivirhe tai jäsennysvirhe.
  2. Käännä tai käännösvirhe.
  3. Suorituksenaikainen virhe.
  4. Looginen virhe.

Yllä olevat virheet voidaan korjata vianetsinnän ja 'virhevirheilmoitusten' avulla koodissa. Suorituksenaikainen virhe voidaan estää valitsemalla On Error Resume Next.

VBA-ajonaikainen virhe:

Ennen On On Resume Resume Next -sivun selitystä, sinun tulisi olla tietoinen ajonaikaisesta virheestä, kun lauseessa on mahdotonta matemaattisia lauseita tai termejä, niin tämä ajonaikainen virhe tapahtuu.

Esimerkkejä Excel VBA: n virheestä jatkuu seuraavaksi

Alla on erilaisia ​​esimerkkejä seuraavasta virheen jatkamisesta Excel VBA: ssa:

Voit ladata tämän VBA-virheen jatkamisen seuraavan Excel-mallin täältä - VBA-virheen jatkaminen seuraavan Excel-mallin

VBA On Error jatkaa seuraavaksi - esimerkki # 1

Tässä virhe jätetään huomioimatta ja koodin suorittaminen etenee. Alla mainitussa esimerkissä 6: ta ei voi jakaa nollalla, jos suoritat sen syöttämättä On Error Resume Next -käskyä, tapahtuu alla mainittu ajonaikainen virhe.

Koodi:

 Sub RUNTIME_1 () MsgBox 6/0 End Sub 

Jos SUB-käskyn jälkeen koodin yläosaan syötetyn virheen jatka seuraavaksi -kohdassa, se jättää huomioimatta ajonaikaisen virheen ja siirtyy seuraavaan lauseeseen, tulokseksi tulee 6/2 (Popup-viestiruutu sen tuloksena).

Koodi:

 Sub RUNTIME_2 () Virheessä Jatka Seuraava MsgBox 6/0 MsgBox 6/2 End Sub 

VBA On Error jatkaa seuraavaksi - esimerkki 2

Voin käyttää On Error Resume Next -koodia missä tahansa koodin sisällä alusta loppuun. Alla mainitussa esimerkissä minun on tehtävä 3 laskelmaa eli

9/3 =?

9/0 =?

9/2 =?

Edellä mainitussa esimerkissä voit tarkkailla toista laskutoimitusta, jossa mitään lukua ei voida jakaa nollalla, ts. Toisessa vaiheessa 9 ei voida jakaa nollalla. Oletetaan, että jos suoritat makron syöttämättä On Error Resume Next -käskyä, voin nyt suorittaa koodin askel askeleelta askeleen sisään tai F8-näppäimen avulla ymmärtääksesi sen toiminnan.

Nyt suoritan yllä olevan koodin napsauttamalla askel askeleelta askel Into- vaihtoehtoa tai F8-näppäintä. Kopioin vain yllä olevan koodin ja aloitan sen suorittamisen askel askeleelta, koska laskutoimituksen ensimmäisen vaiheen viestiruutu 3 ilmestyy.

Koodi:

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

Kun suoritan toisen koodirivin, alla mainittu ajonaikainen virhe tapahtuu koodin toisessa vaiheessa, jossa mitään lukua ei voida jakaa nollalla, toisin sanoen 9: tä ei voi jakaa nolla toisessa vaiheessa.

Koodi:

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

Nyt, jos napsautin jopa virheenkorjausta, se ei voi jatkaa eteenpäin, missä se vie minut toiselle riville (Se korostuu keltaisella värillä), missä minun on tehtävä korjaus. Joten, jos napsautat edelleen Askelvaihtoehtoa tai F8-näppäintä, tämän koodin kolmas laskelma ei suoriteta.

Tämän ajonaikaisen virheen korjaamiseksi tai käsittelemiseksi minun on käytettävä tai suoritettava OnError Resume Next -käsky toisen koodin yläpuolella tai koodin alussa alalaitteen alapuolella. niin että se ohittaa kyseisen koodirivin ja siirtyy koodin kolmanteen vaiheeseen ja laskee arvon.

Koodi:

 Sub RUNTIME_30 () MsgBox 9/3 On Error Jatka Seuraava MsgBox 9/0 MsgBox 9/2 End Sub 

TAI

 Sub RUNTIME_31 () Virheessä Jatka Seuraava MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Nyt olen lisännyt virheilmoituksen jatkamiseen seuraavaan lauseeseen koodiin, jossa voit käyttää mitä tahansa yllä olevaa koodia. Jos suoritat sitä askel askeleelta, saat kahden viestin ponnahdusikkunan, yksi on lähtö ensimmäinen koodi ja kolmas koodi laskeminen. Käytössä Virhe Jatka Seuraava jättää huomioimatta toisen koodin suoritusvirheen ja siirtyy kolmanteen koodiin.

VBA On Error jatkaa seuraavaksi - esimerkki 2

Näemme nyt virheen jatkamisen yhdistelmän seuraavaksi virheen GoTo 0 kanssa. Alla olevassa koodissa se jättää virheet huomiotta, kunnes se saavuttaa On Error GoTo 0 -käskyn. On On Go Goo 0 -käskyn jälkeen koodi palaa takaisin tai siirry normaaliin virheen tarkistukseen ja laukaisee odotettavissa olevan virheen.

Koodi:

 Sub onError_Go_to_0_with_Resume_next () On Error Resume Next Tapa "C: TempFile.exe" On Error GoTo 0 Range ("A1"). Value = 100 / "PETER" End Sub 

Kun suoritan yllä olevan koodin, se näyttää jakovirheen, ts. Tyypin yhteensopimattomuuden (numeerista arvoa ei voida jakaa tekstillä).

Nyt voit tallentaa työkirjan "Excel-makro-käytössä työkirjana". Napsauttamalla tallenna kuin taulukon vasemmassa kulmassa.

Kun avaat tämän excel-tiedoston uudelleen, voit käyttää alla mainittua pikanäppäintä eli

Function + Alt + F11 -pikanäppäin auttaa sinua pääsemään kaikkiin työkirjan luotuihin makrokoodeihin. Function + Alt + F8 -pikanäppäin auttaa sinua avaamaan ”Makro” -valintaikkunan, joka sisältää kaikki makronimet, jossa voit suorittaa tietyn valitsemasi makrokoodin.

Muistettavat asiat

  • Ajoaikavirhe jää hiljaa loukkuun ja tallennetaan globaaliin Err-esineeseen
  • On Error Resume Seuraava estää yleensä koodin suorittamisen keskeytymisen.
  • Virheobjektin ominaisuudet (Err Object) poistetaan automaattisesti, kun Resume Next -toimintoa käytetään virheenkäsittelyohjelmassa

Suositellut artikkelit

Tämä on opas VBA: n virheiden jatkamiseen seuraavaksi. Tässä keskustellaan VBA Excel -sovelluksen erityyppisistä virheistä sekä joitain käytännöllisiä esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. Täydellinen opas VBA-makroihin
  2. VBA DateDiff (esimerkkejä Excel-mallilla)
  3. Kuinka käyttää tavoitehakua VBA: lla?
  4. VBA-suojalehti syntaksilla
  5. VBA Environ

Luokka: