Pangangasiwa ng Error sa VBA | Patnubay sa Paghawak ng Error sa Excel VBA
Pangangasiwa ng Error sa Excel VBA
Sa VBA kapag nagtatrabaho kami sa mga code maaari kaming makatagpo ng maraming iba't ibang mga uri ng error at kung paano i-troubleshoot ang mga error na ito ay kilala bilang Error handling, ngayon ay maaaring may ilang mga error na nagawa sa syntax na kung saan ay excel mismo ang nagha-highlight nito ngunit kapag may ilang error na nasa labas ng saklaw o isang bagay na hindi umiiral ang excel ay nagbibigay sa amin ng isang pop up para sa pareho, mahalagang malaman kung aling error code ang para sa kung anong error upang makilala ang error sa code.
Sa Excel VBA habang nagpapatupad ng anumang hanay ng mga code nakakakuha kami ng ilang uri ng mga error. Ang ilan sa mga error na ito ay mga error sa syntax ang ilan ay mga error na hindi maisasagawa. Ang error sa syntax ay kapag ginawa ng gumagamit ay naka-highlight sa pulang kulay sa pamamagitan ng excel mismo. Ngunit kapag mayroong anumang iba pang uri ng error sa run time paano namin ito hawakan at paano kami makakakuha ng lampas sa ito ang sasakupin namin sa artikulong ito.
Bukod sa mga error sa syntax, ang iba pang mga error sa run time ay kailangang hawakan habang nagpapatupad ng anumang hanay ng mga code. Una, hayaan mo akong magbigay ng isang halimbawa kung paano nangyayari ang iba pang error sa runtime. Tingnan ang code sa ibaba,
Ito ay isang sample na code kapag naisakatuparan ay ibabalik ang nakasulat sa pagpapaandar ng msgbox. Ngunit tulad ng nakikita natin na sa pangalawang linya ng code mayroong 4/0 na kung saan ay hindi posible sa mga termino sa matematika kaya't ibabalik nito ang isang error sa run time. Ipatupad natin ang code sa itaas at tingnan ang error na makukuha natin.
Ito ang error na nakukuha namin habang isinasagawa ang naibigay na code. Ngayon paano namin hahawakan ang error na ito ay ginagawa ng Error Handling.
Mayroong dalawang pamamaraan para sa paghawak ng mga error na kung saan ay:
- Sa Error Goto, at
- Sa Error Ipagpatuloy ang Susunod.
Paliwanag
Tulad ng ipinaliwanag sa itaas nakakakuha kami ng maraming mga uri ng mga error sa VBA ang ilan ay syntax at ang ilan ay run time. Ang mga error sa syntax ay naka-highlight na sa Pulang kulay, halimbawa, mag-refer sa ibaba ng screenshot,
Habang ang iba pa ay nagpapatakbo ng mga error sa oras. Talaga, gagawin ng excel ang mga sumusunod na tatlong bagay, alinman ay magpapakita ito ng isang error o huwag pansinin ang error na iyon o magpapakita ito ng isang tiyak na hanay ng mga tagubilin. Upang maisagawa ang mga nasabing gawain kailangan nating magbigay ng mga tagubilin at ito ay tinatawag na Error Handling.
Paano Pangasiwaan ang Mga Error sa VBA Code?
Maaari mong i-download ang VBA Error Handling Excel Template dito - VBA Error Handling Excel TemplateHalimbawa # 1
Para sa unang halimbawa ipaalam sa amin kunin ang unang code na kinuha namin bilang isang pagpapakita. Sa halimbawa sa itaas, nakita namin na ang code ay nagbibigay ng error sa run time sa pangalawang pagpapaandar ng msgbox.
Isulat ang sumusunod na code pagkatapos buksan ang subfunction,
Code:
Sub Sample () Sa Error Ipagpatuloy Susunod na MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub
Ngayon kapag naipatupad namin ang code sa itaas nakikita namin na ang linya ng code na mayroong error ay hindi naisakatuparan. Nilaktawan ng Excel ang linya na iyon at nagpapatuloy sa susunod na linya.
May isa pang pamamaraan upang hawakan ang error ay ang vba Goto Statement, nagbibigay kami ng excel na patutunguhan upang puntahan kapag nakakita ito ng isang error. Sa halip na nakaraang code sa paghawak ng error, nagsingit kami, isulat ang sumusunod na code,
Code:
Sub Sample () Sa Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub
Nagbibigay kami ng excel Az bilang isang patutunguhang pupuntahan kung makakita ito ng isang error. Ngayon pagkatapos ng msgbox sumulat ng isa pang code tulad ng sa ibaba,
Code:
Sub Sample () Sa Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Tapos Na: Exit Sub
Ngayon kailangan naming tukuyin ang patutunguhan az bilang kung ano ang dapat gawin nito kapag ang excel ay nakakahanap ng isang error sa code.
Code:
Sub Sample () Sa Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Tapos na: Exit Sub az: MsgBox "Ito ay isang error" & Err.Description End Sub
Ngayon kapag pinatakbo namin ang code na ito nakikita namin ang ipinakitang resulta.
Ito ang unang resulta sa kahon ng msg at alam namin na mayroon kaming isang error sa susunod na linya ng aming code, tingnan natin ang resulta kung ano ang ibibigay ng excel.
Ang err.description sa itaas sa code ay tumutulong sa amin na maipakita nang eksakto kung ano ang naganap na error sa aming code.
Halimbawa # 2
Nalaman namin kung paano hawakan ang mga error sa aming mga code. Tingnan natin ang isa pang halimbawa ng kung paano hawakan ang mga error. Isaalang-alang ang sumusunod na code bilang aming pangalawang halimbawa.
Mayroon kaming medyo katulad na error mula sa halimbawa 1. Ang error ay nasa linya d = i / b. Hawakin namin ngayon ang mga error na ito sa pamamagitan ng paggamit ng dalawang pamamaraan na ipinaliwanag sa itaas.
Isulat ang sumusunod na code pagkatapos buksan ang subfunction,
Code:
Sub Sample2 () Sa Error Resume Susunod bx Dim i Bilang Integer, b Bilang Integer, c Bilang Integer, d Bilang Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d End Sub
Ngayon kapag naipatupad namin ang aming code maaari naming makita na hindi nito pinapansin ang pangalawang linya at ipinapakita lamang ang halaga para sa C.
Ang handler ng error sa itaas ay isang susunod na resume, ngayon gagamitin namin ang Pumunta sa kung saan sasabihin namin sa excel ng isang patutunguhang pupuntahan kapag nakatagpo ito ng isang error. Isulat ang sumusunod na code,
Code:
Sub Sample2 () Sa Error GoTo bx Dim i Bilang Integer, b Bilang Integer, c Bilang Integer, d Bilang Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d
Ang bx ay isang patutunguhan na ibinigay kapag nakatagpo ito ng isang error pagkatapos ng msgbox D isulat ang sumusunod na code,
Code:
Sub Sample2 () Sa Error GoTo bx Dim i Bilang Integer, b Bilang Integer, c Bilang Integer, d Bilang Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub
Ngayon kailangan naming tukuyin ang patutunguhan Bx kung ano ang dapat gawin nito kapag nakatagpo ito ng isang error, Kaya't isulat ang sumusunod na code,
Code:
Sub Sample2 () Sa Error GoTo bx Dim i Bilang Integer, b Bilang Integer, c Bilang Integer, d Bilang Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox "Ito ay isa pang Error" & Err.Description End Sub
Ngayon kapag naipatupad namin ang code maaari naming makita na ang excel ay unang nagbibigay sa amin ng halaga para sa C.
Ngayon sa isa pang hakbang, bibigyan nito kami ng prompt na ibinigay namin ito kapag nakatagpo ito ng isang error.
Ganito namin hinahawakan ang normal na mga error sa runtime sa Excel VBA.
Bagay na dapat alalahanin
Mayroong ilang mga bagay na kailangan nating tandaan tungkol sa Paghawak ng Error:
- Sa Error Resume Susunod Hindi pinapansin ang error.
- Sa Error GoTo Gives excel isang patutunguhan kapag nakatagpo ito ng isang error.
- Ginamit ang paglalarawan upang maipakita ang eksaktong error na naganap sa gumagamit.