Trajtuesit e gabimeve për makro Excel

Trajtuesit e gabimeve ju lejojnë të specifikoni se çfarë ndodh kur ndeshet një gabim gjatë ekzekutimit të kodit tuaj makro Excel. Trajtuesit e gabimeve janë linja të ngjashme me sa vijon:

Në gabim Shkoni në MyError

Pa trajtuesit e gabimeve, çdo gabim që ndodh në kodin tuaj do të nxisë Excel të aktivizojë një mesazh gabimi më pak se të dobishëm që zakonisht nuk do të përcjellë qartë atë që ndodhi. Megjithatë, me ndihmën e trajtuesve të gabimeve, mund të zgjidhni të shpërfillni gabimin ose të dilni nga kodi me hijeshi me mesazhin tuaj për përdoruesin.

Ekzistojnë tre lloje të deklaratave On Error:

  • Në gabim GoTo SomeLabel: Kodi kalon në etiketën e specifikuar.

  • On Error Resume Next: Gabimi injorohet dhe kodi rifillon.

  • gabimin GoTo 0: VBA rivendoset në sjelljen normale të kontrollit të gabimeve.

Në gabim GoTo SomeLabel

Ndonjëherë një gabim në kodin tuaj do të thotë që ju duhet të dilni me hijeshi nga procedura dhe t'u jepni përdoruesve një mesazh të qartë. Në këto situata, mund të përdorni deklaratën On Error GoTo për t'i thënë Excel që të kalojë në një linjë të caktuar kodi.

Për shembull, në kodin e mëposhtëm të vogël, ju i thoni Excel të ndajë vlerën në qelizën A1 me vlerën në qelizën A2 dhe më pas vendos përgjigjen në qelizën A3. Lehtë. Çfarë mund të shkojë keq?

Nën makro1()
Gama ("A3"). Vlera = Gama ("A1"). Vlera / Gama ("A2"). Vlera
Fundi Nën

Siç rezulton, dy gjëra kryesore mund të shkojnë keq. Nëse qeliza A2 përmban 0, ju merrni një gabim të pjesëtimit me 0. Nëse qeliza A2 përmban një vlerë jo-numerike, ju merrni një gabim të mospërputhjes së llojit.

Për të shmangur një mesazh të keq gabimi, mund t'i thoni Excel-it se Në Gabim, dëshironi që ekzekutimi i kodit të hidhet në etiketën e quajtur MyExit.

Në kodin e mëposhtëm, etiketa MyExit pasohet nga një mesazh për përdoruesin që jep këshilla miqësore në vend të një mesazhi të keq gabimi. Gjithashtu vini re linjën Exit Sub përpara etiketës MyExit, e cila siguron që kodi thjesht do të dalë nëse nuk haset asnjë gabim:

Nën makro1()
Në gabim GoTo MyExit
Gama ("A3"). Vlera = Gama ("A1"). Vlera / Gama ("A2"). Vlera
Dilni Nën
MyExit:
MsgBox "Ju lutemi përdorni numra të vlefshëm jo zero"
Fundi Nën

Në gabim Rifillo Tjetra

Ndonjëherë, dëshironi që Excel të injorojë një gabim dhe thjesht të rifillojë ekzekutimin e kodit. Në këto situata, mund të përdorni deklaratën On Error Resume Next.

Për shembull, pjesa e mëposhtme e kodit ka për qëllim të fshijë një skedar të quajtur GhostFile.exe nga drejtoria C:Temp. Pasi skedari të fshihet, një kuti e bukur mesazhi i tregon përdoruesit se skedari është zhdukur:

Nën makro1()
Vrit "C:TempGhostFile.exe"
MsgBox "Skedari është fshirë."
Fundi Nën

Kodi funksionon shkëlqyeshëm nëse ka vërtet një skedar për t'u fshirë. Por nëse për ndonjë arsye skedari i quajtur GhostFile.exe nuk ekziston në diskun C:Temp, hidhet një gabim.

Në këtë rast, nuk ju intereson nëse skedari nuk është aty, sepse do ta fshinit gjithsesi. Kështu që thjesht mund ta injoroni gabimin dhe të vazhdoni me kodin.

Duke përdorur deklaratën On Error Resume Next, kodi kalon rrjedhën e tij pavarësisht nëse ekziston apo jo skedari i synuar:

Nën makro1()
Në gabim Rifillo Tjetra
Vrit "C:TempGhostFile.exe"
MsgBox "Skedari është fshirë."
Fundi Nën

Në gabim GoTo 0

Kur përdorni deklarata të caktuara gabimi, mund të jetë e nevojshme të rivendosni sjelljen e kontrollit të gabimeve të VBA. Për të kuptuar se çfarë do të thotë kjo, hidhini një sy shembullit vijues.

Këtu, së pari dëshironi të fshini një skedar të quajtur GhostFile.exe nga drejtoria C:Temp. Për të shmangur gabimet që mund të rrjedhin nga fakti që skedari i synuar nuk ekziston, ju përdorni deklaratën On Error Resume Next. Pas kësaj, ju përpiqeni të bëni disa matematikë të dyshimtë duke pjesëtuar 100/Mike:

Nën makro1()
Në gabim Rifillo Tjetra
Vrit "C:TempGhostFile.exe"
Gama ("A3"). Vlera = 100 / "Mike"
Fundi Nën

Ekzekutimi i kësaj pjese të kodit duhet të gjenerojë një gabim për shkak të matematikës fuzzy, por nuk ndodh. Pse? Sepse udhëzimi i fundit që i keni dhënë kodit ishte On Error Resume Next. Çdo gabim i hasur pas kësaj rreshti injorohet në mënyrë efektive.

Për të zgjidhur këtë problem, mund të përdorni deklaratën On Error GoTo 0 për të rifilluar sjelljen normale të kontrollit të gabimeve:

Nën makro1()
Në gabim Rifillo Tjetra
Vrit "C:TempGhostFile.exe"
Në gabim GoTo 0
Gama ("A3"). Vlera = 100 / "Mike"
Fundi Nën

Ky kod do të injorojë gabimet deri në deklaratën On Error GoTo 0. Pas kësaj deklarate, kodi kthehet në kontrollin normal të gabimeve dhe shkakton gabimin e pritshëm që rrjedh nga matematika fuzzy.

Leave a Comment

Si të shkruani shënime në OneNote 2013 në Android

Si të shkruani shënime në OneNote 2013 në Android

Mësoni si të shkruani shënime në OneNote 2013 në Android me krijimin, hapjen dhe regjistrimin e shënimeve. Aplikoni strategji efektive për menaxhimin e shënimeve tuaja.

Formatimi i numrave në një varg teksti në Excel

Formatimi i numrave në një varg teksti në Excel

Mësoni si të formatoni numrat në një varg teksti në Excel për të përfshirë informacione të sakta dhe tërheqëse për raportet tuaja.

Si të fshini qelizat dhe të dhënat në Excel 2010

Si të fshini qelizat dhe të dhënat në Excel 2010

Në Excel 2010, fshini të dhënat apo formatin e qelizave lehtësisht me disa metoda të thjeshta. Mësoni si të menaxhoni përmbajtjen e qelizave me opsione të ndryshme.

Formatimi i elementeve të grafikut të Excel 2007

Formatimi i elementeve të grafikut të Excel 2007

Zhvilloni aftësitë tuaja në formatimin e elementeve të grafikut në Excel 2007 përmes metodave të thjeshta dhe efikase.

Si të rreshtoni dhe justifikoni tekstin në Word 2010

Si të rreshtoni dhe justifikoni tekstin në Word 2010

Mësoni se si të rreshtoni dhe justifikoni tekstin në Word 2010 me opsione të ndryshme rreshtimi dhe justifikimi për të përmirësuar formatimin e dokumenteve tuaja.

Excel 2019: Si të krijoni makro Excel për të automatizuar komandat

Excel 2019: Si të krijoni makro Excel për të automatizuar komandat

Mësoni si të krijoni makro në Excel 2019 për të automatizuar komandat dhe thjeshtuar detyrat tuaja.

Si të përdorni vizoren për të vendosur skeda në Word 2016

Si të përdorni vizoren për të vendosur skeda në Word 2016

Mënyra vizuale dhe e shpejtë për të vendosur një ndalesë skedash në Word 2016 është përdorimi i vizores. Zbulo disa këshilla dhe truke për përdorimin e skedave në këtë program.

Formatimi i boshtit X dhe boshtit Y në grafikët e Excel 2007

Formatimi i boshtit X dhe boshtit Y në grafikët e Excel 2007

Mësoni si të formula boshtet X dhe Y në Excel 2007, duke përfshirë mundësitë e ndryshimit të formatimeve për grafikët e ndryshëm.

Statistika të thjeshta në analizën e të dhënave në Excel

Statistika të thjeshta në analizën e të dhënave në Excel

Eksploroni se si Excel mund t

Gjetja dhe zëvendësimi i të dhënave në Excel 2007

Gjetja dhe zëvendësimi i të dhënave në Excel 2007

Mësoni se si të përdorni veçorinë Find and Replace të Excel 2007 për të gjetur dhe zëvendësuar të dhëna në mënyrë efikase. Kjo udhëzues është e përshtatshme për të gjithë përdoruesit që dëshirojnë të rrisin produktivitetin e tyre.