៖ ប្រភេទ​ដែល​អ្នក​ប្រើ​កំណត់​មិន​បាន​កំណត់​ក្នុង Excel VBA (ដំណោះស្រាយ​រហ័ស 2)

  • ចែករំលែកនេះ។
Hugh West

កំហុសទូទៅបំផុតមួយដែលយើងជួបប្រទះនៅពេលធ្វើការជាមួយ VBA នៅក្នុង Excel គឺថាប្រភេទដែលកំណត់ដោយអ្នកប្រើប្រាស់មិនត្រូវបានកំណត់ទេ។ នៅក្នុងអត្ថបទនេះ ខ្ញុំនឹងបង្ហាញអ្នកពីមូលហេតុដែលកំហុសនេះត្រូវបានបង្កឡើង និងរបៀបដោះស្រាយកំហុសនេះ។

ទាញយកសៀវភៅលំហាត់អនុវត្ត

ទាញយកសៀវភៅលំហាត់នេះដើម្បីធ្វើលំហាត់ប្រាណខណៈពេលដែលអ្នក កំពុងអានអត្ថបទនេះ។

User-Defined Type Not Defined.xlsm

2 មូលហេតុ និងដំណោះស្រាយចំពោះ អ្នកប្រើប្រាស់កំណត់ ប្រភេទមិនបានកំណត់ក្នុង Excel VBA

មាន 2 បញ្ហាសំខាន់ៗនៅពីក្រោយកំហុសដែលជួបប្រទះជាញឹកញាប់នៅក្នុង Excel VBA ។ ចូរ​ស្វែងយល់​ពួកវា​ឱ្យ​បាន​លម្អិត និង​ស្វែងរក​វិធី​ដោះស្រាយ​ពួកវា។

1. កំហុសអក្ខរាវិរុទ្ធខណៈពេលដែលប្រកាសអថេរ

នេះគឺជាហេតុផលចម្បងនៅពីក្រោយកំហុសនេះ។ ភាគច្រើនជាញឹកញាប់ កំហុស “ប្រភេទដែលកំណត់ដោយអ្នកប្រើប្រាស់មិនបានកំណត់” គឺបណ្តាលមកពីកំហុសអក្ខរាវិរុទ្ធ ខណៈពេលប្រកាសអថេរ។

សូមមើលកូដខាងក្រោម។

4218

ប្រសិនបើអ្នកដំណើរការកូដនេះ អ្នកនឹងទទួលបានប្រអប់ error ជូនដំណឹងអ្នកអំពីវត្តមាននៃកំហុស “User-Defined Type Not Defined”។ ជាមួយវា អ្នកនឹងឃើញបន្ទាត់ទីពីរនៃកូដដែលបន្លិចជាពណ៌ខៀវ ដែលខ្ញុំសរសេរ “strng” ជំនួស “string”

ខ្ញុំសង្ឃឹមថាអ្នកទទួលបានចំណុច។ VBA មិនអាចទទួលស្គាល់ប្រភេទអថេរ “strng” នោះហើយជាមូលហេតុដែលវាចាត់ទុកវាជាប្រភេទអថេរថ្មី ហើយគិតថាអ្នកបានកំណត់វានៅកន្លែងណាមួយ។ ប៉ុន្តែនៅពេលដែលវា។បានរកឃើញថាអ្នកមិនបានប្រកាសវានៅកន្លែងណាទេ វាបានលើកឡើងនូវកំហុសមួយ។

ដូច្នេះ ខណៈពេលដែលដំណើរការកូដ VBA សាមញ្ញ ប្រសិនបើអ្នកជួបប្រទះនឹងកំហុសនេះ សូមពិនិត្យអក្ខរាវិរុទ្ធទាំងអស់នៃប្រភេទអថេររបស់អ្នក។

2. កង្វះការយោងត្រឹមត្រូវ

នេះគឺជាមូលហេតុមួយទៀតដែលនៅពីក្រោយកំហុសនេះ។ នោះគឺជាការខ្វះឯកសារយោងត្រឹមត្រូវ។ ពេលខ្លះយើងប្រើវត្ថុមួយចំនួននៅក្នុងកូដរបស់យើងដែលត្រូវការការយោងត្រឹមត្រូវពី ប្រអប់យោង Visual Basic Reference ។ បើមិនដូច្នោះទេ VBA មិនស្គាល់វត្ថុនោះទេ។

សូមមើលកូដ VBA ខាងក្រោម។

3287

ដំណើរការកូដនេះ។ អ្នក​នឹង​ទទួល​បាន​កំហុស​ចាស់​ដូច​គ្នា “ប្រភេទ​ដែល​បាន​កំណត់​ដោយ​អ្នក​ប្រើ​មិន​បាន​កំណត់”, បន្លិច វត្ថុ​វចនានុក្រម ។ នេះគឺដោយសារតែ VBA មិនអាចទទួលស្គាល់ វត្ថុវចនានុក្រម ហើយបានចាត់ទុកវាជាអថេរកំណត់ដោយអ្នកប្រើប្រាស់ ដែលមិនត្រូវបានកំណត់ខុស។

ឥឡូវនេះសំណួរធំបំផុតគឺ តើត្រូវដោះស្រាយកំហុសនេះដោយរបៀបណា? ងាយស្រួល។ មានវិធី 2 ដើម្បីដោះស្រាយកំហុសនេះ។

⧪ ដំណោះស្រាយទី 1៖ ពិនិត្យឯកសារយោងតម្រូវការជាមុនពីប្រអប់យោងប្រអប់មើលឃើញ

នេះគឺជា វិធីឆ្លាតវៃបំផុតដើម្បីដោះស្រាយបញ្ហានេះ។ ចូលទៅកាន់ Tools > ឯកសារយោង ប៊ូតុងនៅក្នុងខ្សែបូ Visual Basic ។ ចុចលើ ឯកសារយោង

ប្រអប់ដែលហៅថា ឯកសារយោង នឹងបើក។ រមូរហើយស្វែងរក Microsoft Scripting Runtime (វាអាស្រ័យលើវត្ថុដែលអ្នកកំពុងប្រើ។ The វចនានុក្រមobject ត្រូវការ Microsoft Scripting Runtime ដើម្បីទទួលស្គាល់។ ដូច្នេះ ខណៈពេលកំពុងប្រើវត្ថុនៅក្នុងកូដ VBA អ្នកត្រូវតែដឹងពីតម្រូវការជាមុនរបស់វា ដើម្បីត្រូវបានទទួលស្គាល់ដោយ VBA។ សូមចូលទៅកាន់តំណនេះសម្រាប់ព័ត៌មានបន្ថែម។) ពិនិត្យវា។

ឥឡូវនេះត្រលប់មកវិញ ហើយដំណើរការកូដ។ អ្នកនឹងមិនទទួលបានកំហុសណាមួយឡើយ។ ដោយសារតែ VBA អាចស្គាល់ វត្ថុវចនានុក្រម នៅពេលនេះ។

⧪ ដំណោះស្រាយទី 2៖ ប្រកាសវាជាវត្ថុសុទ្ធ ជាជាងវត្ថុជាក់លាក់

មានវិធីមួយផ្សេងទៀតដើម្បីដោះស្រាយបញ្ហានេះ។ អ្នកអាចប្រកាសវត្ថុជាវត្ថុសុទ្ធ ជាជាង វត្ថុវចនានុក្រម

សូមកត់សម្គាល់ជួរនៃកូដខាងក្រោម។

2287

នៅទីនេះ ខ្ញុំបានប្រកាសអថេរ MyDictionary ជាវត្ថុសាមញ្ញ មិនមែនជា វចនានុក្រមទេ។ ឥឡូវនេះ ប្រសិនបើអ្នកដំណើរការកូដនេះ អ្នកនឹងមិនមានកំហុសអ្វីនោះទេ។

Hugh West គឺជាគ្រូបណ្តុះបណ្តាល Excel ដែលមានបទពិសោធន៍ខ្ពស់ និងជាអ្នកវិភាគដែលមានបទពិសោធន៍ជាង 10 ឆ្នាំនៅក្នុងឧស្សាហកម្មនេះ។ លោកបានបញ្ចប់ថ្នាក់បរិញ្ញាបត្រផ្នែកគណនេយ្យ និងហិរញ្ញវត្ថុ និងបរិញ្ញាបត្រជាន់ខ្ពស់ផ្នែកគ្រប់គ្រងពាណិជ្ជកម្ម។ Hugh មានចំណង់ចំណូលចិត្តក្នុងការបង្រៀន ហើយបានបង្កើតវិធីសាស្រ្តបង្រៀនពិសេសមួយ ដែលងាយស្រួលធ្វើតាម និងយល់។ ចំណេះដឹងជំនាញ Excel របស់គាត់បានជួយសិស្សានុសិស្ស និងអ្នកជំនាញរាប់ពាន់នាក់នៅទូទាំងពិភពលោកបង្កើនជំនាញ និងពូកែក្នុងអាជីពរបស់ពួកគេ។ តាមរយៈប្លុករបស់គាត់ លោក Hugh ចែករំលែកចំណេះដឹងរបស់គាត់ជាមួយពិភពលោក ដោយផ្តល់ជូននូវការបង្រៀន Excel ដោយឥតគិតថ្លៃ និងការបណ្តុះបណ្តាលតាមអ៊ីនធឺណិត ដើម្បីជួយបុគ្គល និងអាជីវកម្មឈានដល់សក្តានុពលពេញលេញរបស់ពួកគេ។