Az OnError nyilatkozat használata az Excel 2016 VBA programban

Ha az Excel VBA hibáit kell kezelnie, használhatja az OnError utasítást. Van azonban néhány dolog, amit először tudnod kell. Az On Error utasítást háromféleképpen használhatja.

Szintaxis Mit csinál
Error GoTo címkén Az utasítás végrehajtása után a VBA
a megadott címkét követő utasítással folytatja a végrehajtást . A
címke után kettőspontot kell megadnia , hogy a VBA címkeként ismerje fel.
Error GoTo 0 Az utasítás végrehajtása után a VBA folytatja a normál
hibaellenőrzési viselkedést. Használja ezt az utasítást a
többi On Error utasítás valamelyikének használata után, vagy ha el szeretné távolítani a hibakezelést
az eljárásból.
Hiba esetén Folytatás a következőre Az utasítás végrehajtása után a VBA egyszerűen figyelmen kívül hagy minden hibát,
és a végrehajtást a következő utasítással folytatja.

Folytatás hiba után

Bizonyos esetekben egyszerűen azt szeretné, hogy a rutin kecsesen fejeződjön be, amikor hiba történik. Például megjeleníthet egy üzenetet, amely leírja a hibát, majd kilép az eljárásból. (A korábban bemutatott EnterSquareRoot5 példa ezt a technikát használja.) Más esetekben, ha lehetséges, szeretne helyreállítani a hibát.

A hiba utáni helyreállításhoz Folytatás utasítást kell használnia. Ez törli a hibaállapotot, és lehetővé teszi a végrehajtás folytatását egy bizonyos helyen. Az önéletrajzi nyilatkozatot háromféleképpen használhatja.

Szintaxis Mit csinál
Önéletrajz A végrehajtás a hibát okozó utasítással folytatódik. Használja
ezt, ha a hibakezelő kód kijavítja a problémát, és
rendben van a folytatás.
Folytatás Tovább A végrehajtás közvetlenül
a hibát okozó utasítás utáni utasítással folytatódik . Ez lényegében figyelmen kívül hagyja a
hibát.
Önéletrajz címke A végrehajtás a megadott címkénél folytatódik .

A következő példa egy Resume utasítást használ hiba fellépése után:

Sub EnterSquareRoot6()
  Dim Num As Variant
  Dim Msg As String
  Dim Ans As Integer
Próbáld újra:
' Állítsa be a hibakezelést
  Hiba esetén GoTo BadEntry
' Érték kérése
  Num = InputBox ("Adjon meg egy értéket")
  Ha Num = "" Akkor lépjen ki a Sub
' Illessze be a négyzetgyököt
  ActiveCell.Value = Sqr(szám)
  Exit Sub
BadEntry:
  Msg = Err.Number & ": " & Error(Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Üzenet & "Győződjön meg arról, hogy egy tartomány van kiválasztva, "
  Msg = Üzenet & "a lap nem védett, "
  Msg = Msg & "és megad egy nemnegatív értéket."
  Msg = Msg & vbNewLine & vbNewLine & "Próbáld újra?"
  Ans = MsgBox (Msg, vbYesNo + vbCritical)
  Ha Ans = vbYes, akkor folytassa a TryAgain parancsot
Vége Sub

Ennek az eljárásnak egy másik címkéje is van: TryAgain. Ha hiba történik, a végrehajtás a BadEntry címkén folytatódik, és a kód az alábbi üzenetet jeleníti meg. Ha a felhasználó az Igen gombra kattintva válaszol, a Resume utasítás elindul, és a végrehajtás visszaugrik a TryAgain címkére. Ha a felhasználó a Nem gombra kattint, az eljárás véget ér.

Az OnError nyilatkozat használata az Excel 2016 VBA programban

Ha hiba történik, a felhasználó eldöntheti, hogy megpróbálja-e újra.

Vegye figyelembe, hogy a hibaüzenet a hibaszámot is tartalmazza a „hivatalos” hibaleírás mellett.

A folytatás előtt a Resume utasítás törli a hibaállapotot. Ennek megtekintéséhez próbálja meg a következő utasítással helyettesíteni az előző példában szereplő, másodiktól az utolsóig terjedő utasítást:

Ha Ans = vbYes, akkor menjen a TryAgain-hez

A kód nem működik megfelelően, ha a Folytatás helyett a GoTo-t használja. A bemutatáshoz írjon be egy negatív számot. Megjelenik a hibaüzenet. Kattintson az Igen gombra az újrapróbálkozáshoz, majd írjon be egy másik negatív számot. Ez a második hiba nincs bezárva, mert az eredeti hibafeltételt nem törölték.

Hibakezelés dióhéjban

Annak érdekében, hogy a hibakezeléssel kapcsolatos ügyeket rendben tartsa, íme egy gyors összefoglaló. A hibakezelő kód blokkja a következő jellemzőkkel rendelkezik:

  • Közvetlenül az On Error utasításban megadott címke után kezdődik.

  • A makró csak akkor érheti el, ha hiba történik. Ez azt jelenti, hogy közvetlenül a címke előtt kell használnia egy utasítást, például Exit Sub vagy Exit Function.

  • Szükség lehet önéletrajzi nyilatkozatra. Ha úgy dönt, hogy hiba esetén nem szakítja meg az eljárást, akkor a fő kódhoz való visszatérés előtt végre kell hajtania egy Resume utasítást.

Tudni, mikor kell figyelmen kívül hagyni a hibákat

Egyes esetekben teljesen rendben van a hibák figyelmen kívül hagyása. Ekkor lép életbe az On Error Resume Next utasítás.

A következő példa végigfut a kiválasztott tartomány minden celláján, és az értéket négyzetgyökké alakítja. Ez az eljárás hibaüzenetet generál, ha a kijelölés bármely cellája negatív számot vagy szöveget tartalmaz:

Sub SelectionSqrt()
  Dim cell As Range
  Ha Típusnév(Kijelölés) <> „Tartomány”, akkor lépjen ki a Sub
  Minden egyes kiválasztott cellához
    cella.Érték = Sqr(cella.Érték)
  Következő cella
Vége Sub

Ebben az esetben érdemes egyszerűen kihagyni minden olyan cellát, amely olyan értéket tartalmaz, amelyet nem lehet négyzetgyökké alakítani. Az If-Then struktúrák használatával mindenféle hibaellenőrző képességet létrehozhat, de jobb (és egyszerűbb) megoldást is kitalálhat, ha egyszerűen figyelmen kívül hagyja a felmerülő hibákat.

A következő rutin ezt az On Error Resume Next utasítás használatával éri el:

Sub SelectionSqrt()
  Dim cell As Range
  Ha Típusnév(Kijelölés) <> „Tartomány”, akkor lépjen ki a Sub
  Hiba esetén Folytatás a következőre
  Minden egyes kiválasztott cellához
    cella.Érték = Sqr(cella.Érték)
  Következő cella
Vége Sub

Általában használhatja az On Error Resume Next utasítást, ha úgy véli, hogy a hibák ártalmatlanok vagy nem következetesek a feladat szempontjából.

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.