VBA hibás

A VBA On Error egy egyszerű módszer a váratlan kivételek kezelésére az Excel Macros programban. Ismert, hogy hiba nélkül nem tudunk kódot írni. A nagy kód írása néha hibát is okozhat nekünk, még a fordításkor is. Az ilyen helyzet elkerülése érdekében hozzáadunk egy Hibaüzenetet, amely a helyes válasz vagy hibakód megadása helyett hibakóddal jeleníti meg az üzenetet. Úgy tűnik, hogy megvan a számításunk kimenete, de a hibakód nyomtatódik ki.

Hogyan lehet használni az Excel VBA-t hibajelentésen az Excelben?

A VBA-ban háromféle hiba létezik. Nézzünk meg különféle példákat néhány példával.

1. példa

Az első hibatípus a Kód-fordítási hiba, amely akkor jelentkezik, ha a kódot be nem jelentették vagy lehetetlen változók. A további megértéshez az osztás egyszerű matematikai kifejezését fogjuk használni. Ehhez lépjen a VBA Beszúrás menüjébe, és válassza az alább látható módon a Modul elemet.

Most nyissa meg az alkategóriát, és adjon hozzá bármilyen nevet. Ahogy On Error- t használunk, így neveztük ugyanaznak.

 Sub OnError () Vége Sub 

Most definiáljon 2 vagy 3 egész számot. Itt X-et és Y-t veszünk egész számként.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám vége Sub 

Most, ahogy fentebb tárgyaltuk, kiszámítjuk az osztási matematikai kifejezést. X esetén egy karaktert fogunk a Számlálóba elosztani és osztani 0-val. És Y lesz 20/2, ami teljes szám.

 Sub OnError () Dim X egész szám, Y egész szám X = Teszt / 0 Y = 20/2 End Sub 

Most futtassa a kódot az F5 billentyű használatával vagy a lejátszás gombra kattintva, az alább látható módon. A 6. futási idő hibát kapjuk, amely a Szöveg többszörös hibát jelzi.

Most, hogy felülbíráljuk ezt a hibát, hozzáadunk egy sort On Error Resume Next, mielőtt a matematikai kódot megírnánk. Átugorja a hibakódot, de a második matematikai kód eredményét nem látjuk. Ez csak akkor rejti el a hibaüzenetet, ha különféle kódsorok vannak, az alábbiak szerint. Most próbálja meg futtatni a kódot is.

 Sub OnError () Dim X egész szám, Y egész szám hiba esetén folytatás Következő X = Teszt / 0 Y = 20/2 MsgBox X MsgBox Y Vége Sub 

Most, hogy felülbíráljuk ezt a hibát, hozzáadunk egy sort On Error Resume Next, mielőtt a matematikai kódot megírnánk. Átugorja a hibakódot, de a második matematikai kód eredményét nem látjuk. Ez csak akkor rejti el a hibaüzenetet, ha különféle kódsorok vannak, az alábbiak szerint. Most próbálja meg futtatni a kódot is.

2. példa

Ebben a példában azt a matematikai osztást vesszük figyelembe, amely végtelen eredményt ad, de kódolás esetén # DIV / 0 eredményt fog eredményezni. Ennek igazolására egy további Z egész számot veszünk figyelembe, X-vel és Y-vel együtt az alkategóriában, az alább látható módon.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám vége Sub 

Most vázolja az összes X, Y és Z egész számot az osztás matematikai kifejezésével, és kinyomtatásához használja az MsgBox függvényt az egyes egész eredmények VBA-jában.

Az alábbiakban az X egész számra osztottuk a 10-t 0-ra, 20-ra 2-re és 30-at 4-re.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Most futtassa a kódot F5 billentyűvel vagy manuálisan, az alább látható módon.

Amint a fenti képernyőképen láthatjuk, a 11. futási idő hiba, ami azt jelenti, hogy a hiba a számhoz kapcsolódik. Most ennek kiküszöböléséhez adjon hozzá egy sort On Error Resume Next, a matematikai kifejezés előtt, az alábbiak szerint.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám hiba esetén folytatás X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ha most futtatjuk a kódot, akkor az első X egész számra nullát kapunk, az Y és a Z értékre pedig az alábbiak szerint kapjuk meg az osztási válaszokat.

3. példa

A második típusú hiba akkor jelenik meg, ha helytelen adatbevitelt írunk be a kódba. Ehhez 3 X, Y és Z egész számot veszünk figyelembe az alkategória megnyitásával a VBA-ban, az alább látható módon.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám vége Sub 

Most vegye figyelembe azt a matematikai osztást is, amelyet a fenti példában láthattunk.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ha futtatjuk a kódot, akkor ugyanazt a hibaüzenetet kapunk, mint a 11. futási idő hiba.

Most, hogy felülbírálja ezt a hibát, használja a Hiba GoTo szöveget az „Eredmény : átugorhatja a hibaüzenetet, és kapja meg az alábbiak szerint jól működő kimenetet szöveggel.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám hiba esetén GoTo ZResult: X = 10/0 Y = 20/2 ZEredmény: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Most futtassa újra a kódot. Ugyanazt az eredményt kapjuk, mint az előző példában.

Hiba esetén a GoTo ZResult segít nekünk az említett eredménypont egész számának közvetlen átugrásában, ahogyan a Z egész számban tettük.

4. példa

A harmadik típusú hiba esetén, amikor futtatjuk a kódot, és a VBA nem képes megérteni a kód sorát. Ezt a On On Resume Next (Kód folytatása) kóddal, az MsgBox Err.Number számmal együtt is megteheti . Vegyük figyelembe a fenti példákban használt adatokat. Meg fogjuk látni ugyanazt a 3 egész X, Y és Z egész számot, amint az alább látható.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám vége Sub 

És az eredménykimenet kinyomtatásához engedélyezze az összes egész üzenet mezőit kimenetként.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Most, ha futtatjuk a teljes kódot, akkor egy matematikai hibaüzenetet kapunk, amely a futási idő 11. hibája.

Most, hogy felülbíráljuk ezt a hibát, az On Error Resume Next lehetőséget fogjuk használni.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám hiba esetén folytatás X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

És futtassa a kódot. Ez érvényes eredményt ad az érvényes matematikai soron, az alább látható módon.

Most adjunk hozzá még egy ZResult kód sort a Z egész számmegosztási matematikai kifejezés elõtt, és adjuk hozzá az MsgBox Err.Number kód sort a kód végéhez, az alább látható módon.

 Sub OnError () Dim X egész szám, Y egész szám, Z egész szám hiba esetén folytatás X = 10/0 Y = 20/2 ZEredmény: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Most futtassa a kódot az F5 billentyűvel vagy a lejátszás gomb megnyomásával, az alább látható módon.

Mint láthatjuk a fenti képernyőképeket. Az első üzenet mezőben 0 van, amely felülírja a helytelen matematikai kifejezést. A második és a harmadik oszlop eredménye Y és Z egész szám. És az utolsó üzenet mezőben futott 11-es hibakód, amely valószínűleg az X egész szám osztási kifejezéseinek hibakódja.

Előnyei a VBA On Error

  • Bármely matematikai képletet kiszámolhatunk, még akkor is, ha helytelen.
  • Nagyobb kódolási struktúrák esetén, ahol van esély vagy hiba, ezeknek a módszereknek a felhasználása a kódsorok között is eredményes lehet.
  • Ez jobb eredményt ad, mint a normál excel számítások eredménye.

Dolgok, amikre emlékezni kell

  • A fájlt mindig a Macro-Enabled Excel fájlba mentse, hogy a létrehozott VBA kódot sokszor és többször is felhasználhassuk.
  • Az excel követelmények bevezetése előtt mindig fordítsa le az írásbeli kódot.
  • Ha szükséges, rendelje hozzá az írott kódot bármelyik gombhoz, hogy gyorsan rákattinthassunk és futtassuk a kódot.

Itt töltheti le a VBA On Error Excel sablont - VBA On Error Excel sablon

Ajánlott cikkek

Ez egy útmutató az Excel VBA On Error-hoz. Itt megvitattuk, hogyan lehet használni a VBA Hibanyilatkozatot, néhány gyakorlati példával és letölthető Excel sablonnal együtt. Megnézheti más javasolt cikkeinket is -

  1. Hogyan kell használni a VBA TRIM funkciót?
  2. Számformátum a VBA-ban
  3. Útmutató az Excel VBA-hez
  4. Hogyan kell használni a VBA Find Function funkciót?

Kategória: