Á Villa Ferilskrá Næsta: Meðhöndlun villu í Excel VBA

  • Deildu Þessu
Hugh West

Í 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

Hugh West er mjög reyndur Excel þjálfari og sérfræðingur með yfir 10 ára reynslu í greininni. Hann er með BA gráðu í bókhaldi og fjármálum og meistaragráðu í viðskiptafræði. Hugh hefur ástríðu fyrir kennslu og hefur þróað einstaka kennsluaðferð sem auðvelt er að fylgja eftir og skilja. Sérfræðiþekking hans á Excel hefur hjálpað þúsundum nemenda og fagfólks um allan heim að bæta færni sína og skara fram úr í starfi. Í gegnum bloggið sitt deilir Hugh þekkingu sinni með heiminum og býður upp á ókeypis Excel námskeið og netþjálfun til að hjálpa einstaklingum og fyrirtækjum að ná fullum möguleikum.