Hibakezelők Excel makrókhoz

A hibakezelők lehetővé teszik annak meghatározását, hogy mi történjen, ha az Excel makrókódja futása közben hiba történik. A hibakezelők a következőkhöz hasonló sorok:

Hiba esetén GoTo MyError

Hibakezelők nélkül a kódban előforduló bármely hiba arra készteti az Excelt, hogy aktiváljon egy kevésbé hasznos hibaüzenetet, amely általában nem adja meg egyértelműen a történteket. A hibakezelők segítségével azonban dönthet úgy, hogy figyelmen kívül hagyja a hibát, vagy kecsesen kilép a kódból a saját üzenetével a felhasználónak.

Háromféle hibaüzenet létezik:

  • Hiba esetén GoTo SomeLabel: A kód a megadott címkére ugrik.

  • Error Resume Next: A hiba figyelmen kívül marad, és a kód folytatódik.

  • Error GoTo 0 esetén: A VBA visszaáll a normál hibaellenőrzési viselkedésre.

Hiba esetén GoTo SomeLabel

Néha egy hiba a kódban azt jelenti, hogy kecsesen ki kell lépnie az eljárásból, és egyértelmű üzenetet kell adnia a felhasználóknak. Ilyen helyzetekben az On Error GoTo utasítással utasíthatja az Excelt, hogy ugorjon egy bizonyos kódsorra.

Például a következő kis kódrészletben megmondja az Excelnek, hogy az A1 cellában lévő értéket ossza el az A2 cellában lévő értékkel, majd helyezze el a választ az A3 cellába. Könnyen. Mi romolhat el?

Almakró1()
Tartomány("A3").Érték = Tartomány("A1").Érték / Tartomány("A2").Érték
Vége Sub

Mint kiderült, két fő dolog ronthat el. Ha az A2 cellában 0 van, akkor 0-val osztás hibaüzenetet kapunk. Ha az A2 cella nem numerikus értéket tartalmaz, akkor típushibát kap.

A kellemetlen hibaüzenetek elkerülése érdekében jelezze az Excelnek, hogy Hiba esetén azt szeretné, hogy a kód végrehajtása a MyExit címkére ugorjon.

A következő kódban a MyExit címkét egy olyan üzenet követi a felhasználónak, amely csúnya hibaüzenet helyett barátságos tanácsot ad. Vegye figyelembe a MyExit címke előtti Kilépési alsort is, amely biztosítja, hogy a kód egyszerűen kilépjen, ha nem történik hiba:

Almakró1()
Hiba esetén GoTo MyExit
Tartomány("A3").Érték = Tartomány("A1").Érték / Tartomány("A2").Érték
Exit Sub
MyExit:
MsgBox "Kérjük, használjon érvényes, nullától eltérő számokat"
Vége Sub

Hiba esetén Folytatás a következővel

Néha azt szeretné, hogy az Excel figyelmen kívül hagyjon egy hibát, és egyszerűen folytassa a kód futtatását. Ilyen helyzetekben használhatja az On Error Resume Next utasítást.

Például a következő kódrészlet a GhostFile.exe nevű fájl törlésére szolgál a C:Temp könyvtárból. A fájl törlése után egy szép üzenetmező tájékoztatja a felhasználót, hogy a fájl eltűnt:

Almakró1()
Öld meg a "C:TempGhostFile.exe" fájlt
MsgBox "A fájl törölve."
Vége Sub

A kód remekül működik, ha valóban van törölnivaló fájl. De ha valamilyen oknál fogva a GhostFile.exe nevű fájl nem létezik a C:Temp meghajtón, akkor hibaüzenet jelenik meg.

Ebben az esetben nem érdekel, ha a fájl nincs ott, mert úgyis törölni akarta. Így egyszerűen figyelmen kívül hagyhatja a hibát, és továbbléphet a kóddal.

Az On Error Resume Next utasítás használatával a kód lefut, függetlenül attól, hogy a célfájl létezik-e vagy sem:

Almakró1()
Hiba esetén Folytatás a következővel
Öld meg a "C:TempGhostFile.exe" fájlt
MsgBox "A fájl törölve."
Vége Sub

Error GoTo 0

Bizonyos hibaüzenetek használatakor szükség lehet a VBA hibaellenőrzési viselkedésének visszaállítására. Annak megértéséhez, hogy ez mit jelent, vessen egy pillantást a következő példára.

Itt először törölni kell a GhostFile.exe nevű fájlt a C:Temp könyvtárból. Az olyan hibák elkerülése érdekében, amelyek abból fakadhatnak, hogy a célfájl nem létezik, használja az On Error Resume Next utasítást. Ezek után megpróbálsz valami gyanús számítást végezni úgy, hogy elosztod a 100/Mike számot:

Almakró1()
Hiba esetén Folytatás a következővel
Öld meg a "C:TempGhostFile.exe" fájlt
Tartomány("A3").Érték = 100 / "Mike"
Vége Sub

Ennek a kódrészletnek a futtatása hibát generál a fuzzy matematika miatt, de nem. Miért? Mert az utolsó utasítás, amit a kódnak adott, az Error Resume Next volt. A sor után észlelt hibákat a rendszer gyakorlatilag figyelmen kívül hagyja.

A probléma orvoslására használhatja az On Error GoTo 0 utasítást a normál hibaellenőrzési viselkedés visszaállításához:

Almakró1()
Hiba esetén Folytatás a következővel
Öld meg a "C:TempGhostFile.exe" fájlt
Error GoTo 0
Tartomány("A3").Érték = 100 / "Mike"
Vége Sub

Ez a kód figyelmen kívül hagyja a hibákat az On Error GoTo 0 utasításig. Ezt az utasítást követően a kód visszatér a normál hibaellenőrzésre, és kiváltja a fuzzy matematikából származó várt hibát.

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.