Սխալի դեպքում Վերսկսեք Հաջորդը. Սխալների կառավարում Excel VBA-ում

  • Կիսվել Սա
Hugh West

Microsoft Excel VBA-ում սխալների կառավարումը կարևոր խնդիրներից մեկն է: Եթե ​​դուք կոդավորող եք, գիտեք սխալների հետ աշխատելու կարևորությունը կատարյալ հավելված ստեղծելու համար: Հայտարարության մեջ ցանկացած սխալ կարող է խանգարել ձեր VBA կոդը շատ առումներով: Այսպիսով, դուք պետք է զգույշ լինեք այդ սխալները վարելու համար VBA ծածկագիրը կատարելիս: Գործարկման ժամանակի շատ սխալներ կան, որոնց կարող եք հանդիպել Excel-ում VBA կոդը օգտագործելու ժամանակ: Դրանցից մեկը լուծելու համար մենք օգտագործում ենք On Error Resume Next հայտարարությունը:

Այս ձեռնարկում դուք կսովորեք օգտագործել Excel-ում On Error Resume Next հայտարարությունը: VBA. Այս ձեռնարկը տեղի կունենա համապատասխան օրինակներով և պատշաճ նկարազարդումներով: Այսպիսով, մնացեք մեզ հետ:

Ներբեռնեք Practice Workbook

VBA On Error Resume Next.xlsm

Error Handling in Excel-ում VBA

Մայքրոսոֆթ Excel VBA-ի հետ աշխատելիս դուք կբախվեք բազմաթիվ սխալների ձեր ենթակարգում: Երբ VBA-ն չի կարող կատարել հայտարարությունը, այն տալիս է գործարկման ժամանակի սխալ:

Excel-ը ավտոմատ կերպով լուծում է այս սխալները, այնպես որ, երբ գործարկման ժամանակի սխալ է հայտնվում, այն ցուցադրում է լռելյայն սխալի հաղորդագրություն, ինչպիսին է հետևյալը.

Այժմ դուք կարող եք տարբեր կերպ վարվել դրանց հետ VBA որոշ հայտարարություններով: Ես դրանք կքննարկեմ հետագա բաժիններում:

Կարդալ ավելին. Ինչպես ուղղել #REF-ը: Սխալ Excel-ում (6 լուծում)

Սխալների հայտարարությունների մասին VBA-ում

Գործարկման ժամանակի սխալները կարգավորելու համար մենք Excel-ին հրահանգում ենք On Error հայտարարությամբ: Դա որոշում էNAME-ի սխալ Excel-ում (10 օրինակ)

💬 Հիշելու բան

✎ Սխալի դեպքում Resume Next -ը չի ուղղում սխալները: Այն հիմնականում անտեսում է սխալը և անցնում հաջորդ հայտարարությանը:

Excel-ը թակարդում և պահում է գործարկման ժամանակի սխալները Err օբյեկտում: Երբ մենք օգտագործում ենք On Error Resume Next հայտարարությունը, այն ջնջում է Err օբյեկտի հատկությունները:

Դուք կարող եք անջատել On Error Resume Next Excel-ում ձեր VBA կոդի հայտարարությունը՝ ավելացնելով On Error GoTo 0 հայտարարությունը:

Եզրակացություն

Եզրափակելու համար, հուսով եմ, որ այս ձեռնարկը ձեզ տրամադրել է օգտակար մի կտոր On Error Resume Next Excel VBA-ում օգտագործելու գիտելիքներ: Ես խորհուրդ եմ տալիս սովորել և կիրառել այս բոլոր հրահանգները ձեր տվյալների բազայում: Ներբեռնեք գործնական աշխատանքային գրքույկը և փորձեք դրանք ինքներդ: Նաև ազատ զգալ կարծիք հայտնել մեկնաբանությունների բաժնում: Ձեր արժեքավոր կարծիքը մեզ մոտիվացնում է ստեղծելու նման ձեռնարկներ:

Մի մոռացեք ստուգել մեր կայքը Exceldemy.com Excel-ի հետ կապված տարբեր խնդիրների և լուծումների համար:

Շարունակեք սովորել նոր մեթոդներ և շարունակեք աճել:

ինչպիսի գործողություններ ենք ուզում անել հաջորդիվ անմիջապես: Հիմնականում մենք անջատում ենք այս սխալները՝ այս տեսակի սխալների մշակման միջոցով:

Մենք օգտագործում ենք երեք տեսակի On Error հայտարարություններ (շարահյուսություն) Excel VBA-ում:

  • Սխալի դեպքում GoTo տող
  • Սխալի դեպքում Վերսկսել Հաջորդը
  • Սխալով Գնալ դեպի 0

Երբ սխալ եք գտնում, օգտագործեք On Error հրամանը: Որովհետև եթե չօգտագործեք Սխալի մասին հայտարարությունը, գործարկման ժամանակի այդ սխալները աղետալի կլինեն: Այն ցույց կտա սխալի հուշում և կդադարեցնի կատարումը:

Երբ մենք օգտագործում ենք On Error հայտարարությունը, մենք միացնում ենք «միացված» սխալի մշակիչը: «Ակտիվ» սխալների մշակիչը միացված կարգավորիչ է, որը սկսում է սխալների մշակման գործողությունը: Եթե ​​սխալ է առաջանում, երբ ներգրավված է սխալների մշակողը, ներկայիս մեթոդի սխալների մշակողը չի կարող դիմանալ սխալին: Դրանից հետո կառավարումը վերադառնում է զանգի ընթացակարգին:

Եթե զանգի գործընթացն ունի միացված սխալի մշակիչ, այն գործարկվում է սխալը կառավարելու համար: Եթե ​​ձեր զանգերի համակարգի սխալների մշակիչը համապատասխանաբար միացված է, կառավարումը վերադարձնում է ավելի վաղ զանգերի ընթացակարգերի միջոցով, մինչև գտնի միացված, բայց ոչ ակտիվ սխալների մշակիչը: Եթե ​​այն չի կարող գտնել որևէ անգործուն ռեժիմով միացված սխալի մշակիչ, դա նշանակում է, որ սխալն իր առաջացման կետում աղետալի է:

Ամեն անգամ, երբ սխալ մշակողը լիազորություններ է տալիս կանչող ընթացակարգին, այդ ընթացակարգը զարգացնում է գոյություն ունեցող ընթացակարգը: Կատարումը վերսկսվում էներկա ընթացակարգը Resume հայտարարության կողմից ընտրված պահին, երբ սխալ մշակողը կառավարում է սխալները ցանկացած ընթացակարգում:

«Սխալի դեպքում Resume Next» VBA-ում

Այժմ, On Error Resume Next հայտարարությունը VBA-ին ասում է անտեսել սխալներ ունեցող կոդի ցանկացած տող և անմիջապես անցնել կոդի հետևյալ տողին: Դրանից հետո Excel VBA կոդերը բաց կթողնեն իրենց մեջ սխալներ պարունակող տողը կամ տողերը և կանցնեն կոդի հետևյալ հաջորդականությանը:

On Error Resume Next հայտարարությունը ստիպում է իրականացումը վերսկսել հրամանով, որն անմիջապես հետևում է կոդերի այն շարքին, որոնք առաջացրել են գործարկման ժամանակի սխալը: Այս հայտարարությունը թույլ է տալիս կատարմանը բաց թողնել, նույնիսկ եթե կա գործարկման ժամանակի սխալ: Եթե ​​կարծում եք, որ կոդի որոշակի տող կարող է սխալ առաջացնել, տեղադրեք սխալների մշակման ռեժիմն այնտեղ, այլ ոչ թե ընթացակարգի շրջանակում տեղադրեք այն մեկ այլ վայրում: On Error Resume Next հայտարարությունն անգործուն է դառնում, երբ ձեր կոդը կանչում է այլ ընթացակարգ: Այսպիսով, երբ ձեզ անհրաժեշտ է համընկնող սխալի մշակում այդ ռեժիմում, դուք պետք է գործարկեք On Error Resume Next հրամանը յուրաքանչյուր անվանված օրինաչափության մեջ:

Խելամիտ է, երբ կոդի տողը կարող է բաց թողնել անհրաժեշտ չէ մակրոների ծաղկման համար: Բայց հիշեք, որ այն կարող է վնասակար լինել, եթե այն սխալ օգտագործեք, քանի որ այն կարող է ապահովել անցանկալի արդյունքներ:

Հիշեք.

Միացված է Սխալ Resume Հաջորդ հայտարարությունը չունիշտկել գործարկման ժամանակի սխալները: Այն հիմնականում անտեսում է այն սխալները, որտեղ ձեր VB-ի կատարումը կվերսկսվի այն հայտարարությունից, որն առաջացրել է գործարկման ժամանակի սխալը:

Նայեք հետևյալ կոդը.

3260

Մենք փորձեցինք բաժանել 5-ը: 0-ով և 1-ով: Եկեք գործարկենք կոդը: Այն ցույց կտա հետևյալ ելքը.

Այն առաջացնում է գործարկման ժամանակի սխալ: Մենք չենք կարող թիվը բաժանել 0-ի: Երբ դուք կարգաբերում եք կոդը, կտեսնեք հետևյալը.

Երբ VB ծրագիրը սխալ է գտնում, այն անմիջապես դադարեցնում է ընթացակարգը: Այն չի կատարում հետևյալ տողը:

Այժմ եկեք գործադրենք On Error Resume Next հայտարարությունը սխալի հայտարարությունից առաջ.

2282

Կոդը գործարկելուց հետո դուք տես հետևյալը.

Ինչպես տեսնում եք, VBA-ն անտեսում է սխալ առաջացնող տողը և անմիջապես անցնում է կոդի հետևյալ տողին։ Այս կերպ դուք կարող եք օգտագործել On Error Resume Next հայտարարությունը Excel VBA-ում սխալը կարգավորելու համար:

«On Error Resume Next»-ի օրինակներ VBA-ում

In Հետևյալ բաժիններում ես ձեզ կներկայացնեմ On Error Resume Next հայտարարության երկու օրինակ, որը կարող եք ներդնել ձեր Excel-ի աշխատաթերթում՝ օգտագործելով VBA: Խորհուրդ եմ տալիս սովորել և կիրառել այս ամենը ձեր աշխատանքային գրքում: Դա անպայման կբարձրացնի ձեր Excel-ի գիտելիքները:

1. «On Error Resume Next» հայտարարությունը թաքցնելու աշխատանքային թերթերը

Այժմ, այս օրինակում, ես ձեզ ցույց կտամ VBA կոդ, որըկթաքցնի ձեր ակտիվ աշխատանքային գրքի բոլոր աշխատաթերթերը:

Նայեք հետևյալ սքրինշոթին.

Այստեղ մենք ունենք չորս աշխատաթերթ: Մենք դրանք բոլորը կթաքցնենք՝ օգտագործելով հետևյալ VBA կոդը.

4251

Երբ դուք գործարկեք հետևյալ կոդը, կտեսնեք գործարկման ժամանակի հետևյալ սխալը.

Excel-ը ցույց է տալիս այս սխալը, քանի որ դուք չեք կարող թաքցնել աշխատանքային գրքույկի բոլոր թերթերը: Այսպիսով, դուք պետք է անտեսեք սխալը: Դա անելու համար դուք պետք է ձեր կոդի տողում կատարեք On Error Resume Next հայտարարությունը:

1905

VBA կոդի կատարումն ավարտելուց հետո կտեսնեք հետևյալ ելքը.

Ի վերջո, գործարկումից հետո սխալներ չեք տեսնի: Այսպիսով, մեր On Error Resume Next հայտարարությունը իսկապես լավ էր աշխատում VBA կոդում:

Կարդալ ավելին. Excel-ի սխալները և դրանց նշանակությունը (15 տարբեր սխալներ)

2. VLOOKUP ֆունկցիան VBA-ում 'On Error Resume Next'-ով

Այս օրինակում ես ցույց կտամ VLOOKUP ֆունկցիայի օրինակը VBA-ում : Այժմ այս VBA կոդը ներառում է նաև On Error Resume Next հայտարարությունը:

Նայեք հետևյալ սքրինշոթին.

Այստեղ , կարող եք տեսնել որոշ մարդկանց անունները և նրանց տարիքը: Հարակից աղյուսակում մենք կօգտագործենք VLOOKUP անձի անունը և տարիքը գտնելու համար:

Սա անելու համար մուտքագրեք հետևյալ կոդը.

3952

Այժմ գործարկեք մակրո . Դուք կտեսնեք հետևյալ սխալը.

Այժմ սա գործարկման ժամանակ էսխալ. Ինչու է դա տեղի ունենում: Կրկին նայեք տվյալների շտեմարանին.

Ինչպես տեսնում եք, «Aaron»-ի և «Emma»-ի համար տվյալներ չկան: Ահա թե ինչու այն կատարում է միայն VLOOKUP առաջին մուտքի համար: Դրանից հետո այն դադարեցնում է կատարումը։ Այժմ, եթե ցանկանում եք անտեսել սխալը և շարունակել գտնել մնացած տարիքները, օգտագործեք On Error Resume Next հայտարարությունը:

9205

VBA կոդը գործարկելուց հետո կտեսնեք Հետևյալ ելքը.

Ինչպես տեսնում եք, կիրառելով On Error Resume Next հրամանը, մենք անտեսեցինք սխալը և գտանք մնացած մարդկանց: տարիներ. Մեր VBA կոդը չի գտել Ահարոնի և Էմմայի որևէ տվյալ: Ահա թե ինչու այն անտեսեց այդ արժեքները և վերադարձրեց Excel-ի աշխատաթերթի մնացած արժեքները:

Կարդալ ավելին. 3>

Անջատեք «On Error Resume Next» Excel VBA-ի միջոցով

Այժմ դուք կարող եք հայտնվել մի իրավիճակում, երբ ցանկանում եք անտեսել սխալները VBA կոդի որոշակի հատվածի համար: Հիշեք, եթե դուք օգտագործում եք On Error Resume Next հայտարարությունը VBA կոդում, այն բաց կթողնի բոլոր սխալները դրանից հետո: Այժմ, եթե ցանկանում եք անջատել այն և միացնել սխալների մշակումը մեկ այլ հատվածի համար, օգտագործեք Սխալի դեպքում GoTo 0 : Այն կրկին հնարավորություն կտա սխալների հետ աշխատելը:

Ընդհանուր օգտագործում.

Sub error_handling()

Սխալները անտեսելու համար

Սխալի դեպքում Resume Next

// կոդերի տողերը

Դեպիմիացնել Սխալների մշակումը

Սխալի դեպքում Գնալ դեպի 0

//կոդերի տող

Վերջ ենթակետ

Նայեք հետևյալ VBA կոդը՝

6071

Մենք նախկինում օգտագործել ենք կոդը VLOOKUP ֆունկցիայի համար: Այստեղ ավելացվել է լրացուցիչ կոդ՝ ձեզ ցույց տալու համար: Մեր կոդը անտեսելու է սխալները VLOOKUP կատարելիս, սակայն այն կակտիվացնի սխալների մշակումը On Error GoTo 0 հայտարարությունից հետո:

Կարդալ ավելին. Excel VBA. Անջատեք «On Error Resume Next»

VBA «On Error GoTo»

Նախկինում ես քննարկել եմ սխալների հետ վարվելով՝ օգտագործելով On Error մեթոդը: Մեր ամբողջ հոդվածը վերաբերում էր Error Resume Next-ին: Այժմ կան նաև երկու տեսակի սխալների հետ կապված, որոնք ես կքննարկեմ հաջորդ բաժիններում:

1. VBA Սխալի դեպքում GoTo 0

The On Error Goto 0 հայտարարությունը Excel-ի ներկառուցված կարգավորումն է, եթե ձեր կոդերը չունեն սխալների մշակիչ: Դա հիմնականում ենթադրում է, որ երբ VBA-ն սխալ է գտնում Սխալում GoTo 0 -ով, այն կդադարեցնի գործարկել կոդը և ցույց կտա իր ավանդական սխալի հաղորդագրության տուփը:

Սխալի դեպքում GoTo 0 հայտարարությունը հիմնականում անջատում է սխալների մշակումը ներկա ընթացակարգում: Այն չի սահմանում 0 տողը որպես սխալների մշակման կոդի սկիզբ, նույնիսկ եթե մեթոդը ներառում է 0 համարով տող:

Նայեք հետևյալ կոդը.

7271

Մենք ունենք արդեն ցույց է տվել ձեզ այս կոդը: Այս կոդը հիմնականում թաքցնում է բոլոր աշխատաթերթերըձեր ընթացիկ աշխատանքային գրքում: Հիմա ես իսկապես ունեմ լրացուցիչ կոդ On Error GoTo 0 սխալը ցույց տալու համար: Եթե ​​գործարկեք կոդը, կտեսնեք հետևյալը.

Այն ցույց է տալիս այս սխալը, քանի որ ակտիվ աշխատանքային գրքում չենք կարող ունենալ նույն անունով թերթեր:

2. VBA On Error GoTo տող

Այժմ կարող եք նաև հրահանգել Excel-ին գործարկել կոդի մեկ այլ հատված, եթե սխալ գտնի, օգտագործելով On Error GoTo տողը : Այն հրահանգում է Excel-ին ինչ-որ բան կատարել սխալ գտնելուց հետո:

Գծի արգումենտը ցանկացած տողի պիտակ կամ տողի համար է: Եթե ​​մեր կոդը առաջացնի գործարկման ժամանակի որևէ սխալ, այն կտեղափոխվի գիծ՝ առաջացնելով սխալների մշակման գործարկումը: Հիշեք, որ ձեր սահմանված տողը պետք է լինի ճշգրիտ ընթացակարգով, ինչպես On Error-ը; հակառակ դեպքում դա կառաջացնի կոմպիլյացիայի սխալ:

Նայեք հետևյալ կոդը.

9317

Դուք տեսել եք կոդը նախորդ օրինակում: Երբ մենք օգտագործում էինք On Error GoTo 0 , դա սխալ առաջացրեց: Բայց այստեղ մենք այն փոխարինեցինք On Error GoTo տող հայտարարությամբ:

Այժմ գործարկեք կոդը և կտեսնեք հետևյալը.

Ինչպես տեսնում եք, այն մեզ ցույց չի տալիս ստանդարտ սխալի երկխոսության տուփը: Փոխարենը, այն ցույց է տալիս անհատականացված հաղորդագրությունների տուփը, որը մենք ստեղծել ենք error_handler հատվածում: Երբ Excel-ը գտնում է որևէ սխալ, այն ցատկում է դեպի error_handler հատվածը և ցույց է տալիս մեզ հաղորդագրության տուփը:

Մենք նաև օգտագործել ենք Exit Sub ընթացակարգում:Եթե ​​« VLOOKUP » անունով թերթ չկա, մեր VBA կոդը կվերանվանի ակտիվ թերթիկը: Այնուհետև մենք պետք է ավարտենք կատարումն այստեղ, քանի որ մեզ պետք չէ անցնել սխալների մշակիչին և ցուցադրել հաղորդագրությունների տուփը:

VBA «Սխալի մասին» չի աշխատում Excel-ում

Երբեմն, որքան էլ փորձեք, On Error մեթոդը չի աշխատի: Նախկինում մենք ներդրել էինք Սխալում մեթոդը՝ սխալները կարգավորելու համար: Սակայն երբեմն այն ցույց կտա սխալներ, նույնիսկ եթե դուք օգտագործում եք Սխալով վերսկսել հաջորդը կամ Սխալով GoTo 0 : Ձեր կոդի մեջ կարող են լինել մի քանի պատճառներ, որոնք դուք պետք է շտկեք: Ես չեմ պատրաստվում դա ցույց տալ ձեզ:

VBA-ի « Սխալի վրա» Excel-ում չաշխատելու հիմնական պատճառը Excel-ում «Break on All Errors» տարբերակը միացնելն է:

Խնդիրը լուծելու համար հետևեք հետևյալ քայլերին.

📌 Քայլեր

  • Նախ, ստեղնաշարի վրա սեղմեք Alt+F11 բացեք VBA խմբագրիչը:
  • Այժմ սեղմեք Գործիքներ > Ընտրանքներ:

  • Դրանից հետո սեղմեք Ընդհանուր ներդիրը Ընտրանքներ երկխոսության մեջ: վանդակում:

  • Այստեղ կարող եք տեսնել, որ « Break on All Errors » արդեն նշված է: Այն հիմնականում թույլ չի տալիս ձեզ կարգավորել սխալները:
  • Այն փոխելու համար ընտրեք « Կտրեք չկառավարվող սխալները » տարբերակը և սեղմեք OK :

Հուսով եմ, որ այն կլուծի ձեր խնդիրը, որ VBA «Սխալով» չի աշխատում Excel-ում:

Կարդալ ավելին. Պատճառները և ուղղումներ

Հյու Ուեսթը բարձր փորձառու Excel-ի մարզիչ և վերլուծաբան է, որն ունի ավելի քան 10 տարվա փորձ այս ոլորտում: Նա հաշվապահական հաշվառման և ֆինանսների բակալավրի և բիզնեսի կառավարման մագիստրոսի կոչում է ստացել: Հյուը կիրք ունի դասավանդելու նկատմամբ և մշակել է ուսուցման յուրահատուկ մոտեցում, որը հեշտ է հետևել և հասկանալ: Excel-ի նրա փորձագիտական ​​գիտելիքներն օգնել են հազարավոր ուսանողների և մասնագետների ամբողջ աշխարհում բարելավել իրենց հմտությունները և առաջադիմել իրենց կարիերայում: Իր բլոգի միջոցով Հյուն կիսվում է իր գիտելիքներով աշխարհի հետ՝ առաջարկելով Excel-ի անվճար ձեռնարկներ և առցանց ուսուցում, որոնք կօգնեն անհատներին և ձեռնարկություններին հասնել իրենց ողջ ներուժին: