OnError-lausekkeen käyttäminen Excel 2016 VBA:ssa

Kun sinun on käsiteltävä Excel VBA:n virheitä, voit käyttää OnError-lausetta. On kuitenkin muutamia asioita, jotka sinun on tiedettävä ensin. Voit käyttää On Error -lausetta kolmella tavalla.

Syntaksi Mitä se tekee
On Error GoTo etiketti Tämän käskyn suorittamisen jälkeen VBA jatkaa suorittamista
määritettyä nimiötä seuraavasta käskystä. Sinun on
lisättävä kaksoispiste tarran jälkeen, jotta VBA tunnistaa sen tarraksi.
Virheessä GoTo 0 Tämän käskyn suorittamisen jälkeen VBA jatkaa normaalia
virheentarkistustoimintaansa. Käytä tätä käskyä, kun olet käyttänyt jotakin
muuta On Error -lausetta tai kun haluat poistaa virheenkäsittelyn
toimenpiteestäsi.
Virheestä Jatka seuraavaksi Tämän käskyn suorittamisen jälkeen VBA yksinkertaisesti jättää huomioimatta kaikki virheet
ja jatkaa suorittamista seuraavalla käskyllä.

Jatkuu virheen jälkeen

Joissakin tapauksissa haluat yksinkertaisesti rutiinin päättyvän sulavasti, kun virhe tapahtuu. Voit esimerkiksi näyttää virhettä kuvaavan viestin ja lopettaa toimenpiteen. (Aiemmin esitetty EnterSquareRoot5-esimerkki käyttää tätä tekniikkaa.) Muissa tapauksissa haluat toipua virheestä, jos mahdollista.

Toipuaksesi virheestä, sinun on käytettävä Resume-lausetta. Tämä poistaa virhetilan ja antaa sinun jatkaa suorittamista jossain paikassa. Voit käyttää ansioluetteloa kolmella tavalla.

Syntaksi Mitä se tekee
Jatkaa Suoritusta jatketaan virheen aiheuttaneella käskyllä. Käytä
tätä, jos virheenkäsittelykoodi korjaa ongelman ja
voit jatkaa.
Jatka seuraavaksi Suoritusta jatketaan käskyllä ​​välittömästi
virheen aiheuttaneen käskyn jälkeen. Tämä sivuuttaa
virheen käytännössä.
Jatka etiketti Suoritusta jatketaan määrittämästäsi tunnisteesta .

Seuraava esimerkki käyttää Resume-lausetta virheen tapahtumisen jälkeen:

Sub EnterSquareRoot6()
  Dim Num Varianttina
  Himmeä viesti merkkijonona
  Dim Ans Kokonaislukuna
Yritä uudelleen:
' Määritä virheenkäsittely
  Virheessä GoTo BadEntry
' Pyydä arvoa
  Num = InputBox ("Anna arvo")
  Jos Num = "" Poistu Subista
' Lisää neliöjuuri
  ActiveCell.Arvo = Sqr(luku)
  Poistu Subista
BadEntry:
  Msg = Err.Number & ": " & Error(Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Viesti & "Varmista, että alue on valittu",
  Msg = Viesti & "arkkia ei ole suojattu",
  Msg = Viesti & "ja annat ei-negatiivisen arvon."
  Msg = Viesti & vbNewLine & vbNewLine & "Yritetäänkö uudelleen?"
  Ans = ViestiBox(Viesti, vbYesNo + vbCritical)
  Jos Ans = vbYes Jatka Yritä uudelleen
Lopeta ala

Tällä menettelyllä on toinen nimike: TryAgain. Jos tapahtuu virhe, suoritus jatkuu BadEntry-tunnisteessa ja koodi näyttää alla olevan viestin. Jos käyttäjä vastaa napsauttamalla Kyllä, Resume-lause käynnistyy ja suoritus hyppää takaisin TryAgain-tunnisteeseen. Jos käyttäjä napsauttaa Ei, toimenpide päättyy.

OnError-lausekkeen käyttäminen Excel 2016 VBA:ssa

Jos tapahtuu virhe, käyttäjä voi päättää yrittääkö uudelleen.

Huomaa, että virheilmoitus sisältää myös virhenumeron sekä "virallisen" virhekuvauksen.

Jatka-lause poistaa virhetilan ennen jatkamista. Jos haluat nähdä tämän, yritä korvata seuraava lause edellisen esimerkin toiseksi viimeiseen lauseeseen:

Jos Ans = vbYes, siirry Yritä uudelleen

Koodi ei toimi oikein, jos käytät GoTo sijaan Jatka-toimintoa. Havainnollistaaksesi syötä negatiivinen luku. Saat virheilmoituksen. Yritä uudelleen napsauttamalla Kyllä ja syötä sitten toinen negatiivinen luku. Tämä toinen virhe ei jää kiinni, koska alkuperäistä virhetilannetta ei ole poistettu.

Virhe käsittelyssä pähkinänkuoressa

Tässä on nopea ja likainen yhteenveto, joka auttaa sinua pitämään virheiden käsittelyn sujuvana. Virheenkäsittelykoodin lohkolla on seuraavat ominaisuudet:

  • Se alkaa välittömästi On Error -lauseessa määritetyn tunnisteen jälkeen.

  • Makro saavuttaa sen vain virheen sattuessa. Tämä tarkoittaa, että sinun on käytettävä käskyä, kuten Exit Sub tai Exit Function, välittömästi ennen tarraa.

  • Se voi vaatia ansioluettelon. Jos päätät olla keskeyttämättä toimintoa virheen ilmetessä, sinun on suoritettava Resume-käsky ennen kuin palaat pääkoodiin.

Tietää, milloin virheet on jätettävä huomiotta

Joissakin tapauksissa on täysin okei jättää virheet huomiotta. Silloin On Error Resume Next -lause tulee esille.

Seuraava esimerkki käy läpi jokaisen valitun alueen solun ja muuntaa arvon sen neliöjuureksi. Tämä toimenpide luo virheilmoituksen, jos jokin valinnan solu sisältää negatiivisen luvun tai tekstin:

Sub SelectionSqrt()
  Himmeä solu As Range
  Jos TypeName(Selection) <> “Range” Poistu Sub
  Jokaiselle valinnassa olevalle solulle
    solu.Arvo = Sqr(solu.Arvo)
  Seuraava solu
Lopeta ala

Tässä tapauksessa voit yksinkertaisesti ohittaa minkä tahansa solun, joka sisältää arvon, jota et voi muuntaa neliöjuureksi. Voit luoda kaikenlaisia ​​virheentarkistusominaisuuksia käyttämällä If-Then-rakenteita, mutta voit kehittää paremman (ja yksinkertaisemman) ratkaisun yksinkertaisesti jättämällä huomioimatta tapahtuvat virheet.

Seuraava rutiini suorittaa tämän käyttämällä On Error Resume Next -lausetta:

Sub SelectionSqrt()
  Himmeä solu As Range
  Jos TypeName(Selection) <> “Range” Poistu Sub
  Virheestä Jatka seuraavaksi
  Jokaiselle valinnassa olevalle solulle
    solu.Arvo = Sqr(solu.Arvo)
  Seuraava solu
Lopeta ala

Yleensä voit käyttää On Error Resume Next -lausetta, jos uskot virheet olevan vaarattomia tai merkityksettömiä tehtäväsi kannalta.


Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]