Si të përdorni deklaratën OneError në Excel 2016 VBA

Kur duhet të merreni me gabime në Excel VBA, mund të përdorni deklaratën OnError. Megjithatë, ka disa gjëra që duhet të dini së pari. Ju mund ta përdorni deklaratën On Error në tre mënyra.

Sintaksë Çfarë bën
etiketën e gabimit GoTo Pas ekzekutimit të kësaj deklarate, VBA rifillon ekzekutimin në
deklaratën pas etiketës së specifikuar. Ju duhet të përfshini një dy pika
pas etiketës në mënyrë që VBA ta njohë atë si një etiketë.
Në gabim GoTo 0 Pas ekzekutimit të kësaj deklarate, VBA rifillon
sjelljen e saj normale të kontrollit të gabimeve. Përdoreni këtë deklaratë pasi përdorni një nga deklaratat e
tjera On Error ose kur dëshironi të hiqni trajtimin e gabimeve
në procedurën tuaj.
Në gabim Rifillo Tjetra Pas ekzekutimit të kësaj deklarate, VBA thjesht injoron të gjitha gabimet
dhe rifillon ekzekutimin me deklaratën tjetër.

Rifillimi pas një gabimi

Në disa raste, ju thjesht dëshironi që rutina të përfundojë me hijeshi kur ndodh një gabim. Për shembull, mund të shfaqni një mesazh që përshkruan gabimin dhe më pas të dilni nga procedura. (Shembulli EnterSquareRoot5 i treguar më parë përdor këtë teknikë.) Në raste të tjera, ju dëshironi të rikuperoni nga gabimi, nëse është e mundur.

Për të rikuperuar nga një gabim, duhet të përdorni një deklaratë Resume. Kjo fshin gjendjen e gabimit dhe ju lejon të vazhdoni ekzekutimin në një vend. Ju mund ta përdorni deklaratën Resume në tre mënyra.

Sintaksë Çfarë bën
Vazhdoj Ekzekutimi rifillon me deklaratën që shkaktoi gabimin. Përdoreni
këtë nëse kodi juaj i trajtimit të gabimeve korrigjon problemin dhe
është në rregull të vazhdoni.
Resume Next Ekzekutimi rifillon me deklaratën menjëherë pas
deklaratës që shkaktoi gabimin. Kjo në thelb injoron
gabimin.
Etiketa e rinisë Ekzekutimi rifillon në etiketën që ju specifikoni.

Shembulli i mëposhtëm përdor një deklaratë Resume pasi ndodh një gabim:

Nën EnterSquareRoot6()
  Dim Num As Variant
  Dim Msg As String
  Dim Ans si numër i plotë
Provo përsëri:
' Konfiguro trajtimin e gabimeve
  Në gabim GoTo BadEntry
' Kërkoni për një vlerë
  Num = InputBox ("Fut një vlerë")
  Nëse Num = "" Pastaj Dilni Nën
' Fusni rrënjën katrore
  ActiveCell.Value = Sqr(Num)
  Dilni Nën
Hyrja e keqe:
  Msg = Err.Number & “: “ & Gabim(Err.Number)
  Msg = Msg & vbNewLine & vbNewLine
  Msg = Mesazh & "Sigurohuni që të jetë zgjedhur një varg,"
  Msg = Msg & "fleta nuk është e mbrojtur",
  Msg = Msg & "dhe ju vendosni një vlerë jonegative."
  Msg = Msg & vbNewLine & vbNewLine & "Të provosh përsëri?"
  Përgjigje = MsgBox(Msg, vbPo Jo + vbCritical)
  Nëse Ans = vbPo, atëherë rifilloni TryAgain
Fundi Nën

Kjo procedurë ka një emërtim tjetër: TryAgain. Nëse ndodh një gabim, ekzekutimi vazhdon në etiketën BadEntry dhe kodi shfaq mesazhin më poshtë. Nëse përdoruesi përgjigjet duke klikuar Po, deklarata Resume fillon dhe ekzekutimi kthehet në etiketën TryAgain. Nëse përdoruesi klikon Jo, procedura përfundon.

Si të përdorni deklaratën OneError në Excel 2016 VBA

Nëse ndodh një gabim, përdoruesi mund të vendosë nëse do të provojë përsëri.

Vini re se mesazhi i gabimit përfshin gjithashtu numrin e gabimit, së bashku me përshkrimin "zyrtar" të gabimit.

Deklarata e Resume fshin gjendjen e gabimit përpara se të vazhdoni. Për ta parë këtë, provoni të zëvendësoni deklaratën e mëposhtme me deklaratën e dytë në të fundit në shembullin e mëparshëm:

Nëse Ans = vbPo, atëherë ShkoTo TryAgain

Kodi nuk funksionon siç duhet nëse përdorni GoTo në vend të Resume. Për të demonstruar, vendosni një numër negativ. Ju merrni mesazhin e gabimit. Klikoni Po për të provuar përsëri dhe më pas futni një numër tjetër negativ. Ky gabim i dytë nuk është bllokuar sepse gjendja e gabimit origjinal nuk u fshi.

Trajtimi i gabimeve me pak fjalë

Për t'ju ndihmuar të mbani të drejtë gjithë këtë biznes të trajtimit të gabimeve, ja një përmbledhje e shpejtë dhe e pistë. Një bllok kodi për trajtimin e gabimeve ka karakteristikat e mëposhtme:

  • Fillon menjëherë pas etiketës së specifikuar në deklaratën On Error.

  • Duhet të arrihet nga makroja juaj vetëm nëse ndodh një gabim. Kjo do të thotë që duhet të përdorni një deklaratë të tillë si Exit Sub ose Exit Function menjëherë përpara etiketës.

  • Mund të kërkojë një deklaratë të rezymesë. Nëse zgjidhni të mos e ndërprisni procedurën kur ndodh një gabim, duhet të ekzekutoni një deklaratë Resume përpara se të ktheheni në kodin kryesor.

Të dish se kur të injorosh gabimet

Në disa raste, është krejtësisht në rregull të injorosh gabimet. Në atë moment hyn në lojë deklarata On Error Resume Next.

Shembulli i mëposhtëm kalon nëpër secilën qelizë në diapazonin e zgjedhur dhe e konverton vlerën në rrënjën e saj katrore. Kjo procedurë gjeneron një mesazh gabimi nëse ndonjë qelizë në përzgjedhje përmban një numër ose tekst negativ:

Sub SelectionSqrt()
  Qeliza e zbehtë si varg
  Nëse TypeName(Selection) <> "Range" Pastaj Dilni Sub
  Për çdo qelizë në përzgjedhje
    qeliza.Vlera = Sqr(qeliza.Vlera)
  Qeliza tjetër
Fundi Nën

Në këtë rast, mund të dëshironi thjesht të kapërceni çdo qelizë që përmban një vlerë që nuk mund ta konvertoni në një rrënjë katrore. Ju mund të krijoni të gjitha llojet e aftësive të kontrollit të gabimeve duke përdorur strukturat If-Then, por mund të krijoni një zgjidhje më të mirë (dhe më të thjeshtë) thjesht duke injoruar gabimet që ndodhin.

Rutina e mëposhtme e realizon këtë duke përdorur deklaratën On Error Resume Next:

Sub SelectionSqrt()
  Qeliza e zbehtë si varg
  Nëse TypeName(Selection) <> "Range" Pastaj Dilni Sub
  Në gabim Rifillo Tjetra
  Për çdo qelizë në përzgjedhje
    qeliza.Vlera = Sqr(qeliza.Vlera)
  Qeliza tjetër
Fundi Nën

Në përgjithësi, mund të përdorni një deklaratë On Error Resume Next nëse konsideroni se gabimet janë të padëmshme ose të parëndësishme për detyrën tuaj.

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.