តារាងមាតិកា
នៅក្នុង Microsoft Excel VBA ការដោះស្រាយកំហុសគឺជាកិច្ចការសំខាន់មួយ។ ប្រសិនបើអ្នកជាអ្នកសរសេរកូដ អ្នកដឹងពីសារៈសំខាន់នៃការដោះស្រាយកំហុសដើម្បីបង្កើតកម្មវិធីដ៏ល្អឥតខ្ចោះមួយ។ កំហុសណាមួយនៅក្នុងសេចក្តីថ្លែងការណ៍អាចរារាំងកូដ VBA របស់អ្នកតាមវិធីជាច្រើន។ ដូច្នេះ អ្នកត្រូវតែប្រុងប្រយ័ត្នក្នុងការដោះស្រាយកំហុសទាំងនោះពេលប្រតិបត្តិកូដ VBA។ មានកំហុសពេលរត់ជាច្រើនដែលអ្នកអាចប្រឈមមុខពេលប្រើកូដ VBA ក្នុង Excel ។ ដើម្បីដោះស្រាយមួយក្នុងចំណោមពួកគេ យើងប្រើសេចក្តីថ្លែងការណ៍ On Error Resume Next ។
នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនប្រើសេចក្តីថ្លែងការណ៍ On Error Resume Next នៅក្នុង Excel VBA ការបង្រៀននេះនឹងផ្តោតលើចំណុចជាមួយនឹងឧទាហរណ៍សមរម្យ និងរូបភាពសមរម្យ។ ដូច្នេះ សូមនៅជាមួយយើង។
ទាញយកសៀវភៅការងារអនុវត្ត
VBA On Error Resume Next.xlsm
Error Handling in Excel VBA
ខណៈពេលធ្វើការជាមួយ Microsoft Excel VBA អ្នកនឹងប្រឈមមុខនឹងកំហុសជាច្រើននៅក្នុងដំណើរការរងរបស់អ្នក។ នៅពេលដែល VBA មិនអាចប្រតិបត្តិសេចក្តីថ្លែងការណ៍ វានឹងបោះកំហុសពេលដំណើរការ។
Excel ដោះស្រាយដោយស្វ័យប្រវត្តិនូវកំហុសទាំងនេះ ដូច្នេះនៅពេលដែលកំហុសពេលដំណើរការកើតឡើង វាបង្ហាញសារកំហុសលំនាំដើមដូចខាងក្រោម៖
ឥឡូវនេះ អ្នកអាចដោះស្រាយបញ្ហាទាំងនេះជាមួយនឹងសេចក្តីថ្លែងការណ៍ VBA មួយចំនួន។ ខ្ញុំនឹងពិភាក្សាពួកវានៅផ្នែកបន្ទាប់។
អានបន្ថែម៖ របៀបជួសជុល #REF! Error in Excel (6 Solutions)
On Error Statement in VBA
ដើម្បីដោះស្រាយកំហុសពេលដំណើរការ យើងណែនាំ Excel ជាមួយពាក្យ On Error។ វាសម្រេចចិត្តកំហុស NAME ក្នុង Excel (ឧទាហរណ៍ 10)
💬 អ្វីដែលត្រូវចងចាំ
✎ On Error Resume Next មិនជួសជុលកំហុសនោះទេ។ ជាមូលដ្ឋានមិនអើពើនឹងកំហុស ហើយបន្តទៅសេចក្តីថ្លែងការណ៍បន្ទាប់។
✎ Excel ដាក់អន្ទាក់ និងរក្សាទុកកំហុសពេលដំណើរការនៅក្នុងវត្ថុ Err ។ នៅពេលយើងប្រើសេចក្តីថ្លែងការណ៍ On Error Resume Next វាសម្អាតលក្ខណៈសម្បត្តិរបស់ Err។
✎ អ្នកអាចបិទ On Error Resume Next សេចក្តីថ្លែងការណ៍នៅក្នុងកូដ VBA របស់អ្នកនៅក្នុង Excel ដោយបន្ថែមសេចក្តីថ្លែងការណ៍ On Error GoTo 0 ។
សេចក្តីសន្និដ្ឋាន
ដើម្បីបញ្ចប់ ខ្ញុំសង្ឃឹមថាការបង្រៀននេះបានផ្តល់ឱ្យអ្នកនូវផ្នែកដែលមានប្រយោជន៍ ចំណេះដឹងដើម្បីប្រើ On Error Resume Next ក្នុង Excel VBA។ ខ្ញុំណែនាំអ្នកឱ្យរៀន និងអនុវត្តការណែនាំទាំងអស់នេះទៅសំណុំទិន្នន័យរបស់អ្នក។ ទាញយកសៀវភៅលំហាត់ ហើយសាកល្បងវាដោយខ្លួនឯង។ ដូចគ្នានេះផងដែរ, មានអារម្មណ៍ដោយឥតគិតថ្លៃដើម្បីផ្តល់មតិកែលម្អនៅក្នុងផ្នែកមតិយោបល់។ មតិកែលម្អដ៏មានតម្លៃរបស់អ្នកធ្វើឱ្យយើងមានការលើកទឹកចិត្តក្នុងការបង្កើតការបង្រៀនដូចនេះ។
កុំភ្លេចពិនិត្យមើលគេហទំព័ររបស់យើង Exceldemy.com សម្រាប់បញ្ហា និងដំណោះស្រាយផ្សេងៗដែលទាក់ទងនឹង Excel។
បន្តរៀនវិធីសាស្រ្តថ្មីៗ និងបន្តរីកចម្រើន!
តើប្រតិបត្តិការបែបណាដែលយើងចង់ធ្វើបន្ទាប់ភ្លាមៗ។ ជាទូទៅ យើងបិទកំហុសទាំងនេះដោយប្រភេទនៃការគ្រប់គ្រងកំហុសទាំងនេះ។យើងប្រើសេចក្តីថ្លែងការណ៍ស្តីពីកំហុស (វាក្យសម្ព័ន្ធ) បីប្រភេទនៅក្នុង Excel VBA។
- On Error GoTo line
- On Error Resume Next
- On Error GoTo 0
នៅពេលអ្នករកឃើញកំហុស សូមប្រើពាក្យបញ្ជា On Error។ ដោយសារតែប្រសិនបើអ្នកមិនប្រើការប្រកាស On Error នោះកំហុសពេលដំណើរការទាំងនោះនឹងមានគ្រោះថ្នាក់។ វានឹងបង្ហាញប្រអប់បញ្ចូលកំហុស និងបញ្ឈប់ការប្រតិបត្តិ។
នៅពេលយើងប្រើសេចក្តីថ្លែងការណ៍ On Error យើងបើកកម្មវិធីដោះស្រាយកំហុស "បានបើកដំណើរការ"។ ឧបករណ៍ដោះស្រាយកំហុស "សកម្ម" គឺជាឧបករណ៍ដោះស្រាយដែលបានបើកដែលចាប់ផ្តើមប្រតិបត្តិការដោះស្រាយកំហុស។ ប្រសិនបើមានកំហុសកើតឡើង ខណៈពេលដែលអ្នកដោះស្រាយកំហុសជាប់ពាក់ព័ន្ធ អ្នកដោះស្រាយកំហុសរបស់វិធីសាស្ត្របច្ចុប្បន្នមិនអាចទ្រាំទ្រនឹងកំហុសបានទេ។ បន្ទាប់ពីនោះ វត្ថុបញ្ជាត្រឡប់ទៅដំណើរការហៅទូរសព្ទវិញ។
ប្រសិនបើដំណើរការហៅទូរសព្ទមានឧបករណ៍ដោះស្រាយកំហុសដែលបានបើក វានឹងត្រូវបានកេះដើម្បីគ្រប់គ្រងកំហុស។ ប្រសិនបើអ្នកដោះស្រាយកំហុសប្រព័ន្ធការហៅទូរសព្ទរបស់អ្នកត្រូវបានភ្ជាប់មកជាមួយនោះ ការគ្រប់គ្រងនឹងផ្តល់មកវិញតាមរយៈនីតិវិធីហៅទូរសព្ទពីមុន រហូតដល់វារកឃើញឧបករណ៍ដោះស្រាយកំហុសដែលបានបើក ប៉ុន្តែអសកម្ម។ ប្រសិនបើវាមិនអាចរកឃើញឧបករណ៍ដោះស្រាយកំហុសដែលបានបើកដំណើរការទំនេរណាមួយទេ នេះមានន័យថាកំហុសគឺមហន្តរាយនៅចំណុចដែលកើតឡើងរបស់វា។
រាល់ពេលដែលអ្នកដោះស្រាយកំហុសផ្តល់សិទ្ធិអំណាចត្រឡប់ទៅដំណើរការហៅទូរសព្ទវិញ នីតិវិធីនោះវិវឌ្ឍន៍ដំណើរការដែលមានស្រាប់។ ការប្រតិបត្តិចាប់ផ្តើមឡើងវិញនៅក្នុងនីតិវិធីបច្ចុប្បន្នត្រូវបានជ្រើសរើសដោយសេចក្តីថ្លែងការណ៍ បន្ត នៅពេលដែលកម្មវិធីដោះស្រាយកំហុសដោះស្រាយកំហុសនៅក្នុងនីតិវិធីណាមួយ។
'នៅលើកំហុសបន្តបន្ទាប់' នៅក្នុង VBA
ឥឡូវនេះ នៅលើ Error Resume Next សេចក្តីថ្លែងការណ៍ប្រាប់ VBA ឱ្យព្រងើយកន្តើយចំពោះបន្ទាត់កូដណាមួយដែលមានកំហុស ហើយបន្តភ្លាមៗទៅកាន់បន្ទាត់កូដខាងក្រោម។ បន្ទាប់ពីនោះ កូដ Excel VBA នឹងរំលងបន្ទាត់ ឬបន្ទាត់ដែលមានកំហុសនៅក្នុងពួកវា ហើយបន្តទៅលំដាប់នៃកូដខាងក្រោម។
សេចក្តីថ្លែងការណ៍ On Error Resume Next បង្ខំឱ្យអនុវត្តទៅ បន្តជាមួយពាក្យបញ្ជាភ្លាមៗ ដោយបន្តតាមបន្ទាត់កូដដែលបង្កឱ្យមានកំហុសពេលរត់។ សេចក្តីថ្លែងការណ៍នេះអនុញ្ញាតឱ្យការប្រតិបត្តិដើម្បីរំលង ទោះបីជាមានកំហុសពេលដំណើរការក៏ដោយ។ ប្រសិនបើអ្នកគិតថាបន្ទាត់ជាក់លាក់នៃកូដអាចបង្កើតកំហុស សូមដាក់ទម្លាប់ដោះស្រាយកំហុសនៅទីនោះ ជាជាងដាក់វានៅក្នុងទីតាំងផ្សេងទៀតនៅក្នុងនីតិវិធី។ សេចក្តីថ្លែងការណ៍ On Error Resume Next ក្លាយជាទំនេរ នៅពេលដែលលេខកូដរបស់អ្នកហៅដំណើរការមួយផ្សេងទៀត។ ដូច្នេះ នៅពេលដែលអ្នកត្រូវការការដោះស្រាយកំហុសដែលត្រូវគ្នានៅក្នុងទម្លាប់នោះ អ្នកត្រូវតែដំណើរការពាក្យបញ្ជា On Error Resume Next នៅក្នុងលំនាំដែលមានឈ្មោះនីមួយៗ។
វាសមហេតុផលនៅពេលដែលបន្ទាត់កូដដែលអ្នក អាចរំលង គឺមិនចាំបាច់ចំពោះដំណើរការរីកចំរើននៃម៉ាក្រូនោះទេ។ ប៉ុន្តែត្រូវចាំថា វាអាចមានផលប៉ះពាល់ ប្រសិនបើអ្នកប្រើវាមិនត្រឹមត្រូវ ព្រោះវាអាចផ្តល់លទ្ធផលដោយអចេតនា។
សូមចងចាំ៖
The On Error Resume Next statement មិនដំណើរការទេ។ជួសជុលកំហុសពេលរត់។ វាជាមូលដ្ឋានមិនអើពើនឹងកំហុសដែលការប្រតិបត្តិ VB របស់អ្នកនឹងបន្តពីសេចក្តីថ្លែងការណ៍ដែលបានបង្កើតកំហុសពេលដំណើរការ។
សូមមើលកូដខាងក្រោម៖
6920
យើងបានព្យាយាមបែងចែក 5 ជាមួយ 0 និង 1។ តោះដំណើរការកូដ។ វានឹងបង្ហាញលទ្ធផលដូចខាងក្រោម៖
វាបង្កើតកំហុសពេលដំណើរការ។ យើងមិនអាចបែងចែកលេខដោយ 0 បានទេ។ នៅពេលអ្នកបំបាត់កូដ អ្នកនឹងឃើញដូចខាងក្រោម៖
នៅពេលដែលកម្មវិធី VB រកឃើញកំហុស វាបញ្ឈប់ដំណើរការភ្លាមៗ។ វាមិនដំណើរការបន្ទាត់ខាងក្រោមទេ។
ឥឡូវនេះ ចូរយើងអនុវត្តសេចក្តីថ្លែងការណ៍ On Error Resume Next មុនពេលសេចក្តីថ្លែងការណ៍កំហុស៖
4561
បន្ទាប់ពីដំណើរការកូដ អ្នកនឹង សូមមើលខាងក្រោម៖
ដូចដែលអ្នកបានឃើញ 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' Statement to Hide Worksheets
ឥឡូវនេះ ក្នុងឧទាហរណ៍នេះ ខ្ញុំនឹងបង្ហាញអ្នកនូវកូដ VBA ដែលនឹងលាក់សន្លឹកកិច្ចការទាំងអស់នៃសៀវភៅការងារសកម្មរបស់អ្នក។
សូមមើលរូបថតអេក្រង់ខាងក្រោម៖
នៅទីនេះ យើងមានសន្លឹកកិច្ចការចំនួនបួន។ យើងនឹងលាក់ពួកវាទាំងអស់ដោយប្រើកូដ VBA ខាងក្រោម៖
4249
នៅពេលអ្នកប្រតិបត្តិកូដខាងក្រោម អ្នកនឹងឃើញកំហុសពេលរត់ខាងក្រោម៖
Excel បង្ហាញកំហុសនេះ ព្រោះអ្នកមិនអាចលាក់សន្លឹកទាំងអស់ក្នុងសៀវភៅការងារបានទេ។ ដូច្នេះ អ្នកត្រូវតែមិនអើពើនឹងកំហុស។ ដើម្បីធ្វើដូច្នេះ អ្នកត្រូវអនុវត្ត On Error Resume Next statement នៅក្នុងបន្ទាត់កូដរបស់អ្នក។
4139
បន្ទាប់ពីបញ្ចប់ការប្រតិបត្តិកូដ VBA អ្នកនឹងឃើញលទ្ធផលដូចខាងក្រោម៖
នៅទីបញ្ចប់ អ្នកនឹងមិនឃើញមានកំហុសណាមួយបន្ទាប់ពីការប្រតិបត្តិនោះទេ។ ដូច្នេះ សេចក្តីថ្លែងការណ៍បន្ទាប់នៅលើ Error Resume របស់យើងពិតជាដំណើរការល្អនៅក្នុងកូដ VBA។
អានបន្ថែម៖ កំហុសក្នុង Excel និងអត្ថន័យរបស់វា (15 កំហុសផ្សេងគ្នា) <3
2. មុខងារ VLOOKUP ជាមួយ 'On Error Resume Next' នៅក្នុង VBA
ក្នុងឧទាហរណ៍នេះ ខ្ញុំនឹងបង្ហាញឧទាហរណ៍នៃ មុខងារ VLOOKUP នៅក្នុង VBA ។ ឥឡូវនេះ កូដ VBA នេះក៏រួមបញ្ចូលសេចក្តីថ្លែងការណ៍ On Error Resume Next ។
សូមមើលរូបថតអេក្រង់ខាងក្រោម៖
នៅទីនេះ អ្នកអាចឃើញឈ្មោះរបស់មនុស្សមួយចំនួន និងអាយុរបស់ពួកគេ។ នៅក្នុងតារាងដែលនៅជាប់គ្នា យើងនឹងប្រើ VLOOKUP ដើម្បីស្វែងរកឈ្មោះ និងអាយុរបស់មនុស្សនោះ។
វាយកូដខាងក្រោមដើម្បីធ្វើវា៖
9483
ឥឡូវនេះ សូមដំណើរការម៉ាក្រូ . អ្នកនឹងឃើញកំហុសដូចខាងក្រោម៖
ឥឡូវនេះ នេះជាពេលវេលាដំណើរការកំហុស។ ហេតុអ្វីបានជាវាកើតឡើង? សូមក្រឡេកមើលសំណុំទិន្នន័យម្តងទៀត៖
ដូចដែលអ្នកបានឃើញ មិនមានទិន្នន័យសម្រាប់ "Aaron" និង "Emma" ទេ។ នោះហើយជាមូលហេតុដែលវាដំណើរការតែ VLOOKUP សម្រាប់ធាតុដំបូងប៉ុណ្ណោះ។ បន្ទាប់ពីនោះវាបញ្ឈប់ការប្រតិបត្តិ។ ឥឡូវនេះ ប្រសិនបើអ្នកចង់មិនអើពើនឹងកំហុស ហើយបន្តស្វែងរកអាយុដែលនៅសល់ សូមប្រើសេចក្តីថ្លែងការណ៍ On Error Resume Next ។
7019
បន្ទាប់ពីដំណើរការកូដ VBA អ្នកនឹងឃើញ លទ្ធផលខាងក្រោម៖
ដូចដែលអ្នកបានឃើញ ដោយអនុវត្តពាក្យបញ្ជា On Error Resume Next យើងបានព្រងើយកន្តើយនឹងកំហុស ហើយបានរកឃើញមនុស្សដែលនៅសល់។ អាយុ។ លេខកូដ VBA របស់យើងមិនបានរកឃើញទិន្នន័យណាមួយរបស់ Aaron និង Emma ទេ។ នោះហើយជាមូលហេតុដែលវាមិនអើពើនឹងតម្លៃទាំងនោះ ហើយបានប្រគល់តម្លៃដែលនៅសល់ក្នុងសន្លឹកកិច្ចការ Excel វិញ។
អានបន្ថែម៖ [ជួសជុល] Excel បានរកឃើញបញ្ហាជាមួយសេចក្តីយោងរូបមន្តមួយ ឬច្រើននៅក្នុងសន្លឹកកិច្ចការនេះ
បិទ 'On Error Resume Next' ជាមួយ Excel VBA
ឥឡូវនេះ អ្នកអាចស្ថិតក្នុងស្ថានភាពដែលអ្នកចង់មិនអើពើនឹងកំហុសសម្រាប់ផ្នែកជាក់លាក់នៃកូដ VBA។ សូមចងចាំថា ប្រសិនបើអ្នកប្រើ On Error Resume Next statement នៅក្នុងកូដ VBA វានឹងរំលងរាល់កំហុសទាំងអស់បន្ទាប់ពីនោះ។ ឥឡូវនេះ ប្រសិនបើអ្នកចង់បិទវា ហើយបើកដំណើរការដោះស្រាយកំហុសសម្រាប់ផ្នែកផ្សេងទៀត សូមប្រើ On Error GoTo 0 ។ វានឹងបើកដំណើរការដោះស្រាយកំហុសម្តងទៀត។
ការប្រើប្រាស់ទូទៅ៖
Sub error_handling()
ដើម្បីមិនអើពើនឹងកំហុស
នៅលើកំហុស បន្តបន្ទាប់
// ជួរនៃលេខកូដ
ទៅបើកការដោះស្រាយកំហុស
On Error GoTo 0
//lines of codes
End sub
សូមក្រឡេកមើល កូដ VBA ខាងក្រោម៖
7846
យើងបានប្រើលេខកូដពីមុនសម្រាប់មុខងារ VLOOKUP ។ នេះបានបន្ថែមលេខកូដបន្ថែមដើម្បីបង្ហាញអ្នក។ លេខកូដរបស់យើងនឹងមិនអើពើនឹងកំហុស ខណៈពេលកំពុងដំណើរការ VLOOKUP ប៉ុន្តែវានឹងធ្វើឱ្យដំណើរការដោះស្រាយកំហុសបន្ទាប់ពីសេចក្តីថ្លែងការណ៍ On Error GoTo 0 ។
អានបន្ថែម៖ Excel VBA៖ បិទ “On Error Resume Next”
VBA 'On Error GoTo'
ពីមុនខ្ញុំបានពិភាក្សា ដោះស្រាយកំហុសដោយប្រើវិធីសាស្ត្រ On Error។ អត្ថបទទាំងមូលរបស់យើងគឺនិយាយអំពី នៅលើ Error Resume Next។ ឥឡូវនេះ ក៏មានការដោះស្រាយកំហុសពីរប្រភេទផងដែរ ដែលខ្ញុំនឹងពិភាក្សានៅក្នុងផ្នែកខាងក្រោម។
1. VBA On Error GoTo 0
The On Error Goto 0 សេចក្តីថ្លែងការណ៍គឺជាការកំណត់នៅក្នុង Excel ប្រសិនបើលេខកូដរបស់អ្នកមិនមានកម្មវិធីដោះស្រាយកំហុសនៅក្នុងពួកគេ។ វាបង្កប់ន័យជាមូលដ្ឋានថានៅពេលដែល VBA រកឃើញកំហុសជាមួយ On Error GoTo 0 វានឹងបញ្ឈប់ដំណើរការកូដ ហើយបង្ហាញប្រអប់សារកំហុសប្រពៃណីរបស់វា។
On Error GoTo 0 សេចក្តីថ្លែងការណ៍ជាមូលដ្ឋានបិទការដោះស្រាយកំហុសនៅក្នុងនីតិវិធីបច្ចុប្បន្ន។ វាមិនកំណត់បន្ទាត់ 0 ថាជាការចាប់ផ្តើមនៃកូដដោះស្រាយកំហុសនោះទេ បើទោះបីជាវិធីសាស្ត្រនេះរួមបញ្ចូលបន្ទាត់ដែលមានលេខ 0 ក៏ដោយ។
សូមមើលកូដខាងក្រោម៖
2115
យើងមាន បានបង្ហាញលេខកូដនេះដល់អ្នករួចហើយ។ កូដនេះលាក់ជាមូលដ្ឋាននៃសន្លឹកកិច្ចការទាំងអស់។នៅក្នុងសៀវភៅការងារបច្ចុប្បន្នរបស់អ្នក។ ឥឡូវនេះ ខ្ញុំពិតជាមានលេខកូដបន្ថែមជាមួយ On Error GoTo 0 ដើម្បីបង្ហាញកំហុស។ ប្រសិនបើអ្នកដំណើរការកូដ អ្នកនឹងឃើញដូចខាងក្រោម៖
វាបង្ហាញកំហុសនេះ ដោយសារយើងមិនអាចមានសន្លឹកដែលមានឈ្មោះដូចគ្នានៅក្នុងសៀវភៅការងារសកម្ម។
2. VBA On Error GoTo line
ឥឡូវនេះ អ្នកក៏អាចណែនាំ Excel ឱ្យដំណើរការផ្នែកផ្សេងទៀតនៃកូដដែរប្រសិនបើវារកឃើញកំហុសដោយប្រើ On Error GoTo line ។ វាប្រាប់ Excel ឱ្យប្រតិបត្តិអ្វីមួយបន្ទាប់ពីរកឃើញកំហុស។
អាគុយម៉ង់បន្ទាត់គឺជាស្លាកបន្ទាត់ ឬលេខបន្ទាត់ណាមួយ។ ប្រសិនបើកូដរបស់យើងបណ្តាលឱ្យមានកំហុសពេលដំណើរការណាមួយ វានឹងផ្លាស់ទីទៅបន្ទាត់ ដែលបណ្តាលឱ្យឧបករណ៍ដោះស្រាយកំហុសសកម្មក្នុងការប្រតិបត្តិ។ សូមចាំថា បន្ទាត់ដែលបានកំណត់របស់អ្នកត្រូវតែស្ថិតនៅក្នុងនីតិវិធីពិតប្រាកដ ដូចសេចក្តីថ្លែងការណ៍ស្តីពីកំហុស។ បើមិនដូច្នេះទេ វានឹងបណ្តាលឱ្យមានកំហុសក្នុងការចងក្រង។
សូមមើលកូដខាងក្រោម៖
7723
អ្នកបានឃើញកូដក្នុងឧទាហរណ៍មុន។ នៅពេលដែលយើងប្រើ On Error GoTo 0 វាបណ្តាលឱ្យមានកំហុស។ ប៉ុន្តែនៅទីនេះ យើងបានជំនួសវាដោយ On Error GoTo line សេចក្តីថ្លែងការណ៍។
ឥឡូវនេះ សូមដំណើរការកូដ ហើយអ្នកនឹងឃើញដូចខាងក្រោម៖
ដូចដែលអ្នកអាចមើលឃើញ វាមិនបង្ហាញយើងនូវប្រអប់កំហុសស្តង់ដារទេ។ ផ្ទុយទៅវិញ វាបង្ហាញប្រអប់សារផ្ទាល់ខ្លួនដែលយើងបានបង្កើតនៅក្នុងផ្នែក error_handler ។ នៅពេល Excel រកឃើញកំហុសណាមួយ វាលោតទៅផ្នែក error_handler ហើយបង្ហាញប្រអប់សារមកយើង។
យើងក៏បានប្រើ Exit Sub នៅក្នុងដំណើរការផងដែរ។ប្រសិនបើមិនមានសន្លឹកដែលមានឈ្មោះ “ VLOOKUP ” ទេ លេខកូដ VBA របស់យើងនឹងប្តូរឈ្មោះសន្លឹកសកម្ម។ បន្ទាប់មក យើងត្រូវបញ្ចប់ការប្រតិបត្តិនៅទីនេះ ព្រោះយើងមិនចាំបាច់បន្តទៅកាន់កម្មវិធីដោះស្រាយកំហុស និងបង្ហាញប្រអប់សារ។
VBA 'On Error' មិនដំណើរការក្នុង Excel
ពេលខ្លះ មិនថាអ្នកព្យាយាមប៉ុណ្ណាក៏ដោយ វិធីសាស្ត្រ On Error នឹងមិនដំណើរការទេ។ ពីមុន យើងបានអនុវត្តវិធីសាស្ត្រ On Error ដើម្បីដោះស្រាយកំហុស។ ប៉ុន្តែពេលខ្លះវានឹងបង្ហាញកំហុស បើទោះបីជាអ្នកប្រើ On Error Resume Next ឬ On Error GoTo 0 ។ វាអាចមានហេតុផលជាច្រើននៅក្នុងកូដរបស់អ្នកដែលអ្នកត្រូវជួសជុល។ ខ្ញុំមិនបង្ហាញអ្នកនោះទេ។
ហេតុផលជាមូលដ្ឋានសម្រាប់ VBA ' On Error' មិនដំណើរការក្នុង Excel គឺបើកជម្រើស "បំបែកលើកំហុសទាំងអស់" នៅក្នុង Excel។
អនុវត្តតាមជំហានទាំងនេះដើម្បីដោះស្រាយវា៖
📌 ជំហាន
- ដំបូង ចុច Alt+F11 នៅលើក្តារចុចរបស់អ្នកដើម្បី បើកកម្មវិធីនិពន្ធ VBA។
- ឥឡូវនេះ ចុចលើ Tools > ជម្រើស។
- បន្ទាប់ពីនោះ ចុចលើផ្ទាំង ទូទៅ នៅក្នុងប្រអប់ ជម្រើស ប្រអប់។
- នៅទីនេះ អ្នកអាចមើលឃើញ “ បំបែកកំហុសទាំងអស់ ” ត្រូវបានធីករួចហើយ។ ជាមូលដ្ឋានការពារអ្នកពីការដោះស្រាយកំហុស។
- ដើម្បីផ្លាស់ប្តូរវា ជ្រើសរើសជម្រើស “ បំបែកលើកំហុសដែលមិនបានដោះស្រាយ ” ហើយចុចលើ យល់ព្រម ។
ខ្ញុំសង្ឃឹមថាវានឹងដោះស្រាយបញ្ហារបស់អ្នកនៃ VBA “On Error” មិនដំណើរការក្នុង Excel។
អានបន្ថែម៖ ហេតុផល និងការកែតម្រូវ