Talaan ng nilalaman
Sa Microsoft Excel VBA, ang paghawak ng error ay isa sa mga kritikal na gawain. Kung ikaw ay isang coder, alam mo ang kahalagahan ng paghawak ng error upang makabuo ng isang perpektong application. Ang anumang pagkakamali sa isang pahayag ay maaaring makahadlang sa iyong VBA code sa maraming paraan. Kaya, dapat kang maging maingat upang mahawakan ang mga error na iyon habang nagpapatupad ng VBA code. Mayroong maraming mga error sa run-time na maaari mong harapin habang ginagamit ang VBA code sa Excel. Upang malutas ang isa sa mga ito, ginagamit namin ang pahayag na Sa Error Resume Next .
Sa tutorial na ito, matututunan mong gamitin ang Sa Error Resume Next statement sa Excel VBA. Ang tutorial na ito ay magiging sa punto na may angkop na mga halimbawa at wastong mga guhit. Kaya, manatili sa amin.
I-download ang Practice Workbook
VBA On Error Resume Next.xlsm
Error Handling sa Excel VBA
Habang nagtatrabaho sa Microsoft Excel VBA, makakaharap ka ng maraming error sa iyong sub-procedure. Kapag hindi maisagawa ng VBA ang isang statement, naglalabas ito ng run-time na error.
Awtomatikong tinatalakay ng Excel ang mga error na ito, kaya kapag may lumabas na run-time na error, magpapakita ito ng default na mensahe ng error tulad ng sumusunod:
Ngayon, maaari mong harapin ang mga ito sa iba't ibang paraan gamit ang ilang pahayag ng VBA. Tatalakayin ko ang mga ito sa mga susunod na seksyon.
Magbasa Nang Higit Pa: Paano Ayusin ang #REF! Error sa Excel (6 Solutions)
Sa Mga Error Statement sa VBA
Upang mahawakan ang mga error sa run time, itinuturo namin ang Excel gamit ang On Error statement. Nagpapasya itong NAME Error sa Excel (10 Halimbawa)
💬 Mga Dapat Tandaan
✎ Sa Error Ipagpatuloy ang Susunod ay hindi nag-aayos ng mga error. Karaniwang binabalewala nito ang error at nagpapatuloy sa susunod na pahayag.
✎ Kinulong at iniimbak ng Excel ang mga error sa run-time sa Err object. Kapag ginamit namin ang pahayag na Sa Error Resume Next , iki-clear nito ang mga property ng Err object.
✎ Maaari mong i-off ang Sa Error Resume Next statement sa iyong VBA code sa Excel sa pamamagitan ng pagdaragdag ng On Error GoTo 0 statement.
Konklusyon
Upang tapusin, umaasa akong ang tutorial na ito ay nagbigay sa iyo ng isang piraso ng kapaki-pakinabang kaalaman sa paggamit ng Sa Error Resume Next sa Excel VBA. Inirerekomenda kong matutunan mo at ilapat ang lahat ng mga tagubiling ito sa iyong dataset. I-download ang workbook ng pagsasanay at subukan ito mismo. Gayundin, huwag mag-atubiling magbigay ng feedback sa seksyon ng komento. Ang iyong mahalagang feedback ay nagpapanatili sa amin ng motibasyon upang lumikha ng mga tutorial na tulad nito.
Huwag kalimutang tingnan ang aming website Exceldemy.com para sa iba't ibang mga problema at solusyong nauugnay sa Excel.
Patuloy na matuto ng mga bagong pamamaraan at patuloy na lumago!
kung anong uri ng mga operasyon ang gusto nating gawin kaagad. Karaniwan, hindi namin pinapagana ang mga error na ito sa pamamagitan ng mga ganitong uri ng paghawak ng error.Gumagamit kami ng tatlong uri ng On Error statement(syntax) sa Excel VBA.
- Sa Error GoTo linya
- Sa Error Ipagpatuloy ang Susunod
- Sa Error GoTo 0
Kapag nakakita ka ng error, gamitin ang On Error command. Dahil kung hindi ka gagamit ng On Error na deklarasyon, ang mga run-time na error na iyon ay magiging mapaminsala. Magpapakita ito ng prompt ng error at ihihinto ang pagpapatupad.
Kapag gumamit kami ng statement na On Error , ino-on namin ang isang “enabled” na tagapangasiwa ng error. Ang "aktibo" na tagapangasiwa ng error ay isang naka-enable na tagapangasiwa na nagsisimula sa operasyon ng paghawak ng error. Kung magkakaroon ng pagkakamali habang may kasamang tagapangasiwa ng error, hindi makakayanan ng tagapangasiwa ng error ng kasalukuyang pamamaraan ang error. Pagkatapos nito, babalik ang kontrol sa pamamaraan ng pagtawag.
Kung ang proseso ng pagtawag ay may naka-enable na tagapangasiwa ng error, nati-trigger itong pamahalaan ang error. Kung ang tagapangasiwa ng error ng iyong system sa pagtawag ay may katumbas na pakikipag-ugnayan, ibabalik ng kontrol sa pamamagitan ng mga naunang pamamaraan sa pagtawag hanggang sa makakita ito ng naka-enable ngunit hindi aktibong tagapangasiwa ng error. Kung hindi nito mahanap ang anumang idle enabled na error handler, nangangahulugan ito na ang error ay sakuna sa nagaganap na punto nito.
Sa tuwing ang error handler ay magbibigay ng awtoridad pabalik sa isang calling procedure, ang procedure na iyon ay nagbabago sa kasalukuyang procedure. Magsisimula muli ang pagpapatupad sakasalukuyang pamamaraan sa sandaling pinili ng Ipagpatuloy na pahayag kapag pinangangasiwaan ng tagapangasiwa ng error ang mga error sa anumang pamamaraan.
'Sa Error Ipagpatuloy ang Susunod' sa VBA
Ngayon, ang Sa Error Resume Next sinasabi ng pahayag sa VBA na huwag pansinin ang anumang linya ng code na may mga error, at magpatuloy kaagad sa sumusunod na linya ng code. Pagkatapos nito, lalaktawan ng mga Excel VBA code ang linya o mga linyang naglalaman ng mga error sa mga ito, at magpapatuloy sa sumusunod na pagkakasunud-sunod ng code.
Pinipilit ng Sa Error Resume Next ang pagpapatupad sa ipagpatuloy ang utos na agad na hinahabol ang linya ng mga code na nag-udyok sa error sa run-time. Ang pahayag na ito ay nagpapahintulot sa isang pagpapatupad na laktawan kahit na mayroong error sa run-time. Kung sa tingin mo ay maaaring makagawa ng error ang isang partikular na linya ng code, ilagay doon ang gawain sa paghawak ng error sa halip na ilagay ito sa ibang lokasyon sa loob ng procedure. Nagiging idle ang statement na On Error Resume Next kapag tumawag ang iyong code ng isa pang pamamaraan. Kaya, kapag kailangan mo ng katugmang paghawak ng error sa routine na iyon, kailangan mong magpatakbo ng On Error Resume Next na command sa bawat pinangalanang pattern.
Ito ay makatwiran kapag ang linya ng code na iyong maaaring lumaktaw ay hindi kinakailangan sa umuunlad na pagpapatakbo ng macro. Ngunit tandaan, maaari itong makapinsala kung ginamit mo ito nang hindi tama dahil maaari itong magbigay ng hindi sinasadyang mga resulta.
Tandaan:
The On Error Resume Ang susunod na pahayag ay hindiayusin ang mga error sa runtime. Karaniwang binabalewala nito ang mga error kung saan magpapatuloy ang iyong VB execution mula sa statement na nakabuo ng runtime error.
Tingnan ang sumusunod na code:
7075
Sinubukan naming hatiin ang 5 na may 0 at 1. Patakbuhin natin ang code. Ipapakita nito ang sumusunod na output:
Gumagawa ito ng run-time na error. Hindi namin mahahati ang isang numero sa 0. Kapag na-debug mo ang code, makikita mo ang sumusunod:
Kapag nakahanap ng error ang VB program, agad nitong ihihinto ang pamamaraan. Hindi nito isinasagawa ang sumusunod na linya.
Ngayon, ipatupad natin ang Sa Error Resume Next na pahayag bago ang pahayag ng error:
4311
Pagkatapos patakbuhin ang code, gagawin mo tingnan ang sumusunod:
Tulad ng nakikita mo, binabalewala ng VBA ang linya na gumagawa ng error at nagpapatuloy kaagad sa sumusunod na linya ng code. Sa ganitong paraan, maaari mong gamitin ang On Error Resume Next na pahayag upang mahawakan ang error sa Excel VBA.
Mga halimbawa ng 'On Error Resume Next' sa VBA
In sa mga sumusunod na seksyon, bibigyan kita ng dalawang halimbawa ng Sa Error Resume Next na pahayag na maaari mong ipatupad sa iyong Excel worksheet gamit ang VBA. Inirerekomenda kong matutunan mo at ilapat ang lahat ng ito sa iyong workbook. Tiyak na madadagdagan nito ang iyong kaalaman sa Excel.
1. ‘Sa Error Resume Next’ Statement to Hide Worksheets
Ngayon, sa halimbawang ito, magpapakita ako sa iyo ng VBA code naitatago ang lahat ng worksheet ng iyong aktibong workbook.
Tingnan ang sumusunod na screenshot:
Narito, mayroon kaming apat na worksheet. Itatago namin ang lahat ng ito gamit ang sumusunod na VBA code:
5276
Kapag naisakatuparan mo ang sumusunod na code, makikita mo ang sumusunod na run-time na error:
Ipinapakita ng Excel ang error na ito dahil hindi mo maitatago ang lahat ng mga sheet sa isang workbook. Kaya, kailangan mong huwag pansinin ang error. Upang gawin ito, kailangan mong ipatupad ang On Error Resume Next na pahayag sa iyong linya ng code.
9460
Pagkatapos makumpleto ang pagpapatupad ng VBA code, makikita mo ang sumusunod na output:
Sa huli, hindi ka makakakita ng anumang mga error pagkatapos ng pagpapatupad. Kaya, ang aming On Error Resume Next na pahayag ay talagang gumana nang maayos sa VBA code.
Magbasa Nang Higit Pa: Mga Error sa Excel at Kanilang Kahulugan (15 Iba't ibang Error)
2. VLOOKUP Function na may 'On Error Resume Next' sa VBA
Sa halimbawang ito, magpapakita ako ng halimbawa ng ang VLOOKUP function sa VBA . Ngayon, kasama rin sa VBA code na ito ang pahayag na On Error Resume Next .
Tingnan ang sumusunod na screenshot:
Dito , makikita mo ang mga pangalan ng ilang tao at ang kanilang mga edad. Sa katabing talahanayan, gagamitin namin ang VLOOKUP upang mahanap ang pangalan at edad ng tao.
I-type ang sumusunod na code para gawin ito:
2764
Ngayon, patakbuhin ang macro . Makikita mo ang sumusunod na error:
Ngayon, ito ay isang run-timepagkakamali. Bakit ito nangyayari? Tingnan muli ang dataset:
Tulad ng nakikita mo, walang data para kay “Aaron” at “Emma”. Iyon ang dahilan kung bakit ini-execute lamang nito ang VLOOKUP para sa unang entry. Pagkatapos nito, huminto ito sa pagpapatupad. Ngayon, kung gusto mong balewalain ang error at magpatuloy upang hanapin ang natitirang mga edad, gamitin ang On Error Resume Next statement.
3912
Pagkatapos patakbuhin ang VBA code, makikita mo ang sumusunod na output:
Tulad ng nakikita mo, sa pamamagitan ng paglalapat ng On Error Resume Next na utos, hindi namin pinansin ang error at nakita namin ang iba pang mga tao. edad. Ang aming VBA code ay walang nakitang anumang data nina Aaron at Emma. Kaya naman binalewala nito ang mga value na iyon at ibinalik ang iba pang value sa Excel worksheet.
Magbasa Nang Higit Pa: [Naayos] Nakahanap ng Problema ang Excel sa Isa o Higit pang Mga Sanggunian ng Formula sa Worksheet na Ito
I-off ang 'On Error Resume Next' gamit ang Excel VBA
Ngayon, maaaring nasa sitwasyon ka kung saan gusto mong balewalain ang mga error para sa isang partikular na segment ng VBA code. Tandaan, kung gagamitin mo ang On Error Resume Next statement sa isang VBA code, laktawan nito ang lahat ng error pagkatapos noon. Ngayon, kung gusto mong i-off iyon at paganahin ang paghawak ng error para sa isa pang segment, gamitin ang On Error GoTo 0 . Ie-enable nitong muli ang paghawak ng error.
Generic na paggamit:
Sub error_handling()
Upang huwag pansinin ang mga error
Sa Error Ipagpatuloy ang Susunod
// mga linya ng code
Para kayi-on ang Error handling
On Error GoTo 0
//linya ng mga code
End sub
Tingnan ang sumusunod na VBA code:
8290
Ginamit namin ang code dati para sa VLOOKUP function. Dito nagdagdag ng dagdag na tipak ng code upang ipakita sa iyo. Babalewalain ng aming code ang mga error habang ginagawa ang VLOOKUP ngunit ia-activate nito ang paghawak ng error pagkatapos ng On Error GoTo 0 na pahayag.
Magbasa Nang Higit Pa: Excel VBA: I-off ang “On Error Resume Next”
VBA 'On Error GoTo'
Dati kong tinalakay paghawak ng mga error gamit ang On Error method. Ang aming buong artikulo ay tungkol sa Sa Error Resume Next. Ngayon, mayroon ding dalawang uri ng error handling na tatalakayin ko sa mga sumusunod na seksyon.
1. VBA On Error GoTo 0
The On Error Goto 0 ang pahayag ay ang inbuilt na setting ng Excel kung ang iyong mga code ay walang error handler sa mga ito. Karaniwang ipinahihiwatig nito na kapag nakahanap ang VBA ng error sa On Error GoTo 0 , ititigil nito ang pagpapatakbo ng code at ipapakita ang tradisyonal nitong error message box.
Sa Error GoTo 0 karaniwang pinapatay ng pahayag ang paghawak ng error sa kasalukuyang pamamaraan. Hindi nito tinukoy ang linya 0 bilang simula ng code sa paghawak ng error, kahit na ang pamamaraan ay nagsasama ng linyang may numerong 0.
Tingnan ang sumusunod na code:
4438
Mayroon kaming ipinakita na sa iyo ang code na ito. Karaniwang itinatago ng code na ito ang lahat ng worksheetsa iyong kasalukuyang workbook. Ngayon, mayroon nga akong karagdagang piraso ng code na may On Error GoTo 0 upang ipakita ang error. Kung patakbuhin mo ang code, makikita mo ang sumusunod:
Ipinapakita nito ang error na ito dahil hindi kami maaaring magkaroon ng mga sheet na may parehong pangalan sa aktibong workbook.
2. VBA Sa Error GoTo line
Ngayon, maaari mo ring turuan ang Excel na magpatakbo ng isa pang segment ng code kung makakita ito ng anumang error sa pamamagitan ng paggamit sa linya ng On Error GoTo . Sinasabi nito sa Excel na magsagawa ng isang bagay pagkatapos makakita ng error.
Ang line argument ay anumang line tag o line number. Kung ang aming code ay nagdudulot ng anumang error sa run-time, lilipat ito sa linya, na magiging sanhi ng pagiging aktibo ng handler ng error sa pagpapatupad. Tandaan, ang iyong tinukoy na linya ay dapat na nasa eksaktong pamamaraan bilang On Error statement; kung hindi, magdudulot ito ng error sa pag-compile.
Tingnan ang sumusunod na code:
2794
Nakita mo ang code sa nakaraang halimbawa. Noong ginamit namin ang On Error GoTo 0 , nagdulot ito ng error. Ngunit, dito namin pinalitan iyon ng On Error GoTo line statement.
Ngayon, patakbuhin ang code at makikita mo ang sumusunod:
Tulad ng nakikita mo, hindi nito ipinapakita sa amin ang karaniwang dialog box ng error. Sa halip, ipinapakita nito ang custom na kahon ng mensahe na ginawa namin sa error_handler na segment. Kapag nakahanap ang Excel ng anumang error, tumalon ito sa error_handler segment at ipinapakita sa amin ang kahon ng mensahe.
Gumamit din kami ng Exit Sub sa pamamaraan.Kung walang sheet na pinangalanang " VLOOKUP ", ang aming VBA code ay papalitan ang pangalan ng aktibong sheet. Pagkatapos, kailangan nating tapusin ang execution dito dahil hindi natin kailangang ituloy ang error handler at ipakita ang message box.
VBA 'On Error' Not Working in Excel
Minsan, kahit anong pilit mo, hindi gagana ang On Error method. Dati, ipinatupad namin ang pamamaraang On Error para pangasiwaan ang mga error. Ngunit, kung minsan ay magpapakita ito ng mga error kahit na gumamit ka ng Sa Error Resume Next o Sa Error GoTo 0 . Maaaring may ilang dahilan sa iyong code na kailangan mong ayusin. Hindi ko iyon ipapakita sa iyo.
Ang pangunahing dahilan ng VBA ' On Error' Hindi Gumagana sa Excel ay ang pag-on sa opsyong “Break on All Errors” sa Excel.
Sundin ang mga hakbang na ito upang malutas iyon:
📌 Mga Hakbang
- Una, pindutin ang Alt+F11 sa iyong keyboard upang buksan ang VBA editor.
- Ngayon, mag-click sa Tools > Mga Opsyon.
- Pagkatapos noon, mag-click sa tab na General sa dialog na Options box.
- Dito, makikita mo, ang “ Break on All Errors ” ay naka-check na. Karaniwang pinipigilan ka nitong pangasiwaan ang mga error.
- Upang baguhin ito, piliin ang opsyong “ Break on Unhandled Errors ” at mag-click sa OK .
Sana ay maayos nito ang iyong problema sa VBA “On Error” na hindi gumagana sa Excel.
Magbasa Nang Higit Pa: Mga Dahilan at Pagwawasto