តារាងមាតិកា
កំហុសទូទៅបំផុតមួយដែលយើងជួបប្រទះនៅពេលធ្វើការជាមួយ 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 ជាវត្ថុសាមញ្ញ មិនមែនជា វចនានុក្រមទេ។ ឥឡូវនេះ ប្រសិនបើអ្នកដំណើរការកូដនេះ អ្នកនឹងមិនមានកំហុសអ្វីនោះទេ។