Efnisyfirlit
Í Microsoft Excel VBA er villumeðferð eitt mikilvægasta verkefnið. Ef þú ert kóðari, veistu mikilvægi villumeðferðar til að byggja upp fullkomið forrit. Öll mistök í yfirlýsingu geta hindrað VBA kóðann þinn á marga vegu. Svo þú verður að vera varkár í að meðhöndla þessar villur meðan þú keyrir VBA kóða. Það eru fullt af keyrsluvillum sem þú getur staðið frammi fyrir þegar þú notar VBA kóðann í Excel. Til að leysa eina af þeim notum við setninguna Á villuskrá næsta .
Í þessari kennslu muntu læra að nota setninguna Virtu áframhaldandi næsta í Excel VBA. Þessi kennsla mun vera á punktinum með viðeigandi dæmum og réttum myndskreytingum. Svo vertu hjá okkur.
Sækja æfingabók
VBA On Error Resume Next.xlsm
Villumeðferð í Excel VBA
Þegar þú vinnur með Microsoft Excel VBA muntu standa frammi fyrir miklum villum í undirferlinu þínu. Þegar VBA getur ekki framkvæmt yfirlýsingu, þá sendir það frá sér keyrsluvillu.
Excel tekur sjálfkrafa á við þessar villur, þannig að þegar keyrsluvilla kemur fram birtir það sjálfgefin villuboð eins og eftirfarandi:
Nú geturðu tekist á við þetta á mismunandi hátt með sumum VBA yfirlýsingum. Ég mun ræða þau í síðari köflum.
Lesa meira: Hvernig á að laga #REF! Villa í Excel (6 lausnir)
Við villuyfirlýsingar í VBA
Til að meðhöndla villur í keyrslutíma, kennum við Excel með On Error yfirlýsingunni. Það ræðuraf NAME Villa í Excel (10 dæmi)
💬 Atriði sem þarf að muna
✎ Við villu halda áfram Næsta lagar ekki villurnar. Það hunsar í grundvallaratriðum villuna og heldur áfram í næstu setningu.
✎ Excel gildrur og geymir keyrslutímavillurnar í Err hlutnum. Þegar við notum setninguna On Error Resume Next , hreinsar hún Err object eiginleika.
✎ Þú getur slökkt á On Error Resume Next yfirlýsingu í VBA kóðanum þínum í Excel með því að bæta On Error GoTo 0 yfirlýsingunni við.
Niðurstaða
Til að ljúka, vona ég að þessi kennsla hafi veitt þér gagnlegt stykki þekkingu til að nota On Error Resume Next í Excel VBA. Ég mæli með að þú lærir og notar allar þessar leiðbeiningar á gagnasafnið þitt. Sæktu æfingabókina og prófaðu þessar sjálfur. Einnig skaltu ekki hika við að gefa álit í athugasemdareitnum. Dýrmæt endurgjöf þín heldur okkur áhugasömum um að búa til kennsluefni eins og þetta.
Ekki gleyma að skoða vefsíðu okkar Exceldemy.com fyrir ýmis Excel-tengd vandamál og lausnir.
Haltu áfram að læra nýjar aðferðir og haltu áfram að vaxa!
hvers konar aðgerðir við viljum gera næst strax. Í grundvallaratriðum gerum við þessar villur óvirkar með því að meðhöndla villur af þessu tagi.Við notum þrenns konar On Error setningar(setningafræði) í Excel VBA.
- Við Villa í GoTo lína
- Vir villu halda áfram næst
- Við Villa í GoTo 0
Þegar þú finnur villu skaltu nota On Error skipunina. Vegna þess að ef þú notar ekki On Error yfirlýsingu verða þessar keyrsluvillur hörmulegar. Það mun sýna villutilkynningu og stöðva framkvæmdina.
Þegar við notum On Error setningu kveikjum við á „virkjaðri“ villumeðferð. „Virkja“ villumeðhöndlunin er virkur meðhöndlari sem byrjar villumeðferðina. Ef mistök koma upp á meðan villumeðhöndlari á í hlut getur villumeðferðaraðili núverandi aðferðar ekki þolað villuna. Eftir það fer stjórnin aftur í hringingarferlið.
Ef hringingarferlið er með virkan villuhöndlun, verður það ræst til að stjórna villunni. Ef villumeðhöndlari símakerfisins þíns er samsvarandi virkur, gefur eftirlitið til baka með fyrri hringingaraðferðum þar til það finnur virkan en óvirkan villumeðferðaraðila. Ef það getur ekki fundið neina aðgerðalausa villumeðferð þýðir það að villan er skelfileg þegar hún kemur upp.
Í hvert skipti sem villumeðferðarmaðurinn gefur heimild til baka til köllunarferlis, þróar sú aðferð núverandi aðferð. Framkvæmd hefst aftur ínúverandi aðferð á því augnabliki sem valin er af Resume yfirlýsingunni þegar villumeðferðaraðili meðhöndlar villur í hvaða aðferð sem er.
'On Error Resume Next' í VBA
Nú, On Error Resume Next yfirlýsing segir VBA að hunsa allar kóðalínur sem hafa villur og halda strax áfram í eftirfarandi kóðalínu. Eftir það munu Excel VBA kóðar sleppa línunni eða línunum sem innihalda villur í þeim og fara yfir í eftirfarandi röð kóða.
Staðan On Error Resume Next neyðir innleiðingu til að halda áfram með skipuninni og elta samstundis línuna af kóða sem olli keyrslutímavillunni. Þessi setning gerir kleift að sleppa framkvæmd jafnvel þó að það sé keyrsluvilla. Ef þú heldur að tiltekin lína af kóða geti valdið villu skaltu setja villumeðferðarrútínuna þar frekar en að setja hana á annan stað innan aðferðarinnar. Yfirlýsingin Virtu áframhaldandi næsta verður aðgerðalaus þegar kóðinn þinn kallar á aðra aðferð. Þannig að þegar þú þarft samsvarandi villumeðferð í þeirri venju þarftu að keyra skipunina On Error Resume Next í hverju nafngreindu mynstri.
Það er sanngjarnt þegar kóðalínan sem þú getur sleppt er ekki nauðsynlegt til að blómstrandi gangur makrósins. En mundu að það getur verið skaðlegt ef þú notar það rangt þar sem það getur gefið óviljandi niðurstöður.
Mundu:
The On Villa Resume Next yfirlýsing gerir það ekkilaga keyrsluvillur. Það hunsar í grundvallaratriðum villurnar þar sem VB keyrsla þín mun halda áfram frá yfirlýsingunni sem hefur myndað keyrsluvilluna.
Kíktu á eftirfarandi kóða:
6813
Við reyndum að deila 5 með 0 og 1. Við skulum keyra kóðann. Það mun sýna eftirfarandi úttak:
Það framleiðir keyrsluvillu. Við getum ekki deilt tölu með 0. Þegar þú villur kóðann muntu sjá eftirfarandi:
Þegar VB forritið finnur villu stöðvar það aðgerðina strax. Það keyrir ekki eftirfarandi línu.
Nú skulum við innleiða yfirlýsinguna On Error Resume Next á undan villuyfirlýsingunni:
6237
Eftir að hafa keyrt kóðann muntu sjá eftirfarandi:
Eins og þú sérð, hunsar VBA línuna sem framleiðir villuna og heldur áfram strax í eftirfarandi kóðalínu. Á þennan hátt geturðu notað setninguna Við endurtekningu villu næst til að meðhöndla villuna í Excel VBA.
Dæmi um 'Virtu áframhald næst' í VBA
Í Eftirfarandi köflum ætla ég að gefa þér tvö dæmi um On Error Resume Next yfirlýsinguna sem þú getur innleitt í Excel vinnublaðið þitt með VBA. Ég mæli með að þú lærir og notar allt þetta í vinnubókina þína. Það mun örugglega auka Excel þekkingu þína.
1. ‘On Error Resume Next’ Statement to Hide Worksheets
Nú, í þessu dæmi, mun ég sýna þér VBA kóða semmun fela öll vinnublöð í virku vinnubókinni þinni.
Kíktu á eftirfarandi skjámynd:
Hér höfum við fjögur vinnublöð. Við munum fela þá alla með því að nota eftirfarandi VBA kóða:
4545
Þegar þú keyrir eftirfarandi kóða muntu sjá eftirfarandi keyrsluvillu:
Excel sýnir þessa villu vegna þess að þú getur ekki falið öll blöðin í vinnubók. Svo þú verður að hunsa villuna. Til að gera þetta þarftu að innleiða On Error Resume Next yfirlýsinguna í kóðalínunni þinni.
9332
Eftir að þú hefur lokið við að keyra VBA kóðann muntu sjá eftirfarandi úttak:
Í lokin muntu ekki sjá neinar villur eftir framkvæmd. Svo, On Error Resume Next yfirlýsingin okkar virkaði mjög vel í VBA kóðanum.
Lesa meira: Villur í Excel og merkingu þeirra (15 mismunandi villur)
2. VLOOKUP aðgerð með 'On Error Resume Next' í VBA
Í þessu dæmi mun ég sýna dæmi um VLOOKUP fallið í VBA . Nú, þessi VBA kóða inniheldur einnig yfirlýsinguna On Error Resume Next .
Kíktu á eftirfarandi skjámynd:
Hér , þú getur séð nöfn sumra og aldur þeirra. Í aðliggjandi töflu munum við nota FLOOKUP til að finna nafn viðkomandi og aldur.
Sláðu inn eftirfarandi kóða til að gera þetta:
3025
Nú skaltu keyra makróið . Þú munt sjá eftirfarandi villu:
Nú, þetta er keyrslutímivilla. Hvers vegna gerist það? Skoðaðu gagnasafnið aftur:
Eins og þú sérð eru engin gögn fyrir „Aaron“ og „Emma“. Þess vegna keyrir það aðeins VLOOKUP fyrir fyrstu færsluna. Eftir það stöðvar það framkvæmdina. Nú, ef þú vilt hunsa villuna og halda áfram að finna restina af öldunum, notaðu On Error Resume Next yfirlýsinguna.
5646
Eftir að hafa keyrt VBA kóðann muntu sjá eftirfarandi úttak:
Eins og þú sérð, með því að beita skipuninni On Error Resume Next , hunsuðum við villuna og fundum restina af einstaklingunum' aldir. VBA kóðann okkar fann engin gögn um Aaron og Emmu. Þess vegna hunsaði það þessi gildi og skilaði restinni af gildunum í Excel vinnublaðinu.
Lesa meira: [Lögað] Excel fann vandamál með einni eða fleiri formúlutilvísunum í þessu vinnublaði
Slökktu á 'On Error Resume Next' með Excel VBA
Nú gætirðu verið í aðstæðum þar sem þú vilt hunsa villur fyrir tiltekinn hluta VBA kóðans. Mundu að ef þú notar On Error Resume Next yfirlýsinguna í VBA kóða mun hún sleppa öllum villunum eftir það. Nú, ef þú vilt slökkva á því og virkja villumeðferð fyrir annan hluta, notaðu On Error GoTo 0 . Það mun virkja villumeðferð aftur.
Almenn notkun:
Sub error_handling()
Til að hunsa villur
Við villu halda áfram næst
// kóðalínur
Tilkveiktu á villumeðferð
On Error GoTo 0
//línur af kóða
End sub
Kíktu á eftirfarandi VBA kóða:
5627
Við notuðum kóðann áður fyrir VLOOKUP aðgerðina. Hér bætti við auka klumpur af kóða til að sýna þig. Kóðinn okkar mun hunsa villurnar á meðan VLOOKUP er framkvæmt en hann mun virkja villumeðferðina eftir On Error GoTo 0 yfirlýsinguna.
Lesa meira: Excel VBA: Slökktu á „Virtu áframhaldandi næsta“
VBA „On Error GoTo“
Áður ræddi ég meðhöndla villurnar með On Error aðferðinni. Öll greinin okkar snerist um Á villuskrá næst. Nú eru líka tvær tegundir villumeðferðar sem ég mun fjalla um í eftirfarandi köflum.
1. VBA On Error GoTo 0
The On Error Goto 0 setning er innbyggð stilling Excel ef kóðarnir þínir eru ekki með villumeðferð í þeim. Það gefur í rauninni í skyn að þegar VBA finnur villu með On Error GoTo 0 mun það hætta að keyra kóðann og sýna hefðbundna villuskilaboðareitinn.
On Error GoTo 0 staðhæfing slekkur í grundvallaratriðum á villumeðferðinni í núverandi ferli. Það skilgreinir ekki línu 0 sem upphaf villumeðhöndlunarkóða, jafnvel þótt aðferðin feli í sér línu sem er númeruð 0.
Kíktu á eftirfarandi kóða:
6909
Við höfum þegar sýnt þér þennan kóða. Þessi kóði felur í grundvallaratriðum öll vinnublöðiní núverandi vinnubók. Nú er ég örugglega með auka kóða með On Error GoTo 0 til að sýna villuna. Ef þú keyrir kóðann muntu sjá eftirfarandi:
Það sýnir þessa villu vegna þess að við getum ekki haft blöð með sama nafni í virku vinnubókinni.
2. VBA On Error GoTo lína
Nú geturðu líka gefið Excel fyrirmæli um að keyra annan hluta kóða ef það finnur einhverja villu með því að nota On Error GoTo línuna . Það segir Excel að keyra eitthvað eftir að hafa fundið villu.
Línuröksemdin er hvaða línumerki sem er eða línunúmer. Ef kóðinn okkar veldur einhverri keyrsluvillu mun hann færast í línuna, sem veldur því að villumeðferðarmaðurinn er virkur í keyrslunni. Mundu að skilgreind lína þín verður að vera nákvæmlega eins og On Error yfirlýsingin; annars veldur það samsetningarvillu.
Kíktu á eftirfarandi kóða:
6556
Þú sást kóðann í fyrra dæminu. Þegar við notuðum On Error GoTo 0 olli það villu. En hér skiptum við því út fyrir On Error GoTo línu yfirlýsingunni.
Nú skaltu keyra kóðann og þú munt sjá eftirfarandi:
Eins og þú sérð sýnir það okkur ekki venjulega villugluggann. Í staðinn sýnir það sérsniðna skilaboðareitinn sem við bjuggum til í error_handler hlutanum. Þegar Excel finnur einhverja villu hoppar það yfir í error_handler hlutann og sýnir okkur skilaboðareitinn.
Við notuðum líka Exit Sub í málsmeðferðinni.Ef það er ekkert blað sem heitir " VLOOKUP ", mun VBA kóðann okkar endurnefna virka blaðið. Síðan verðum við að klára framkvæmdina hér vegna þess að við þurfum ekki að halda áfram í villumeðferðina og birta skilaboðareitinn.
VBA 'On Error' Virkar ekki í Excel
Stundum, sama hversu mikið þú reynir, On Error aðferðin virkar ekki. Áður höfum við innleitt On Error aðferðina til að meðhöndla villurnar. En stundum mun það sýna villur, jafnvel þótt þú notir Virtu áframhaldandi næsta eða Virtu í GoTo 0 . Það gætu verið nokkrar ástæður í kóðanum þínum sem þú þarft að laga. Ég ætla ekki að sýna þér það.
Grunnástæðan fyrir því að VBA ' On Error' Virkar ekki í Excel er að kveikja á "Brjóta á allar villur" valkostinn í Excel.
Fylgdu þessum skrefum til að leysa það:
📌 Skref
- Ýttu fyrst á Alt+F11 á lyklaborðinu þínu til að opnaðu VBA ritilinn.
- Smelltu nú á Tól > Valkostir.
- Eftir það skaltu smella á flipann Almennt í Valkostir glugganum box.
- Hér geturðu séð, " Break on All Errors " er þegar merkt. Það kemur í rauninni í veg fyrir að þú meðhöndlar villurnar.
- Til að breyta því skaltu velja valkostinn " Bryt á ómeðhöndlaðar villur " og smelltu á Í lagi .
Ég vona að það muni laga vandamálið þitt þar sem VBA „On Error“ virkar ekki í Excel.
Lesa meira: Ástæður og Leiðréttingar