विषयसूची
Excel में VBA के साथ काम करते समय हमारे सामने आने वाली सबसे आम त्रुटियों में से एक यह है कि उपयोगकर्ता-परिभाषित प्रकार परिभाषित नहीं है। इस लेख में, मैं आपको दिखाऊंगा कि यह त्रुटि क्यों होती है और इस त्रुटि को कैसे हल किया जाए। इस लेख को पढ़ रहे हैं।
2 कारण और समाधान उपयोगकर्ता परिभाषित Excel VBA में प्रकार परिभाषित नहीं है
VBA में अक्सर होने वाली इस त्रुटि के पीछे 2 प्रमुख मुद्दे हैं। आइए उन्हें विस्तार से देखें और उन्हें हल करने के तरीकों का पता लगाएं।
1। चर घोषित करते समय वर्तनी की त्रुटि
इस त्रुटि के पीछे यह प्रमुख कारण है। अधिकांश समय, त्रुटि "उपयोगकर्ता परिभाषित प्रकार परिभाषित नहीं है" चर घोषित करते समय वर्तनी त्रुटि के कारण होता है।
कोड की निम्नलिखित पंक्तियों को देखें।
8509
यदि आप इस कोड को रन करते हैं, तो आपको एक एरर बॉक्स मिलेगा जो आपको एरर "यूज़र-डिफ़ाइंड टाइप नॉट डिफ़ाइंड" की उपस्थिति के बारे में सूचित करेगा। इसके साथ ही, आपको कोड की दूसरी लाइन नीले रंग से हाइलाइट की हुई मिलेगी, जहां मैंने "स्ट्रिंग" के स्थान पर “strng” लिखा था।
मुझे उम्मीद है कि आपको बात समझ में आ गई होगी। VBA वेरिएबल प्रकार “strng” को नहीं पहचान सका, इसीलिए इसे एक नए वेरिएबल प्रकार के रूप में माना और सोचा कि आपने इसे कहीं परिभाषित किया है। लेकिन जब यहपाया कि आपने इसे कहीं भी घोषित नहीं किया है, इसने एक त्रुटि उत्पन्न की।
इसलिए, सरल VBA कोड चलाते समय, यदि आप किसी भी तरह इस त्रुटि का सामना करते हैं, तो पहले अपने चर प्रकारों की सभी वर्तनी जांचें।
2. उचित संदर्भ का अभाव
इस त्रुटि के पीछे यह एक और कारण है। यह उचित संदर्भ का अभाव है। कभी-कभी हम अपने कोड में कुछ वस्तुओं का उपयोग करते हैं जिन्हें विजुअल बेसिक रेफरेंस बॉक्स से उचित संदर्भ की आवश्यकता होती है। अन्यथा, VBA वस्तु को नहीं पहचानता।
निम्नलिखित VBA कोड को देखें।
4620
इस कोड को चलाएँ। आपको वही पुरानी त्रुटि मिलेगी “यूज़र-डिफ़ाइंड टाइप नॉट डिफ़ाइंड”, हाइलाइटिंग डिक्शनरी ऑब्जेक्ट । ऐसा इसलिए है क्योंकि VBA शब्दकोश वस्तु को पहचान नहीं सका, और इसे उपयोगकर्ता-परिभाषित चर के रूप में माना, जिसे गलती से परिभाषित नहीं किया गया है।
अब सबसे बड़ा सवाल यह है कि इस एरर को कैसे सॉल्व किया जाए? आसान। इस त्रुटि को हल करने के 2 तरीके हैं।
⧪ समाधान 1: विज़ुअल बॉक्स संदर्भ बॉक्स से पूर्वावश्यकता संदर्भ की जाँच करना
यह है इस समस्या को हल करने का सबसे स्मार्ट तरीका। टूल्स > विजुअल बेसिक रिबन में सन्दर्भ बटन। संदर्भ पर क्लिक करें।
एक डायलॉग बॉक्स संदर्भ खुलेगा। स्क्रॉल करें और Microsoft स्क्रिप्टिंग रनटाइम खोजें (यह उस ऑब्जेक्ट पर निर्भर करता है जिसका आप उपयोग कर रहे हैं। शब्दकोशऑब्जेक्ट को पहचानने के लिए Microsoft स्क्रिप्टिंग रनटाइम की आवश्यकता होती है। इसलिए, VBA कोड में किसी ऑब्जेक्ट का उपयोग करते समय, आपको VBA द्वारा पहचाने जाने की इसकी पूर्वापेक्षा अवश्य जाननी चाहिए। अधिक जानकारी के लिए इस लिंक पर जाएं।) इसे चेक करें।
अब वापस आएं और कोड रन करें। आपको कोई त्रुटि नहीं मिलेगी। क्योंकि VBA इस बार शब्दकोश वस्तु को पहचान सकता है।
⧪ समाधान 2: इसे एक विशिष्ट वस्तु के बजाय एक शुद्ध वस्तु के रूप में घोषित करना
इस समस्या को हल करने का एक और तरीका है। आप वस्तु को शुद्ध वस्तु के रूप में घोषित कर सकते हैं, बजाय शब्दकोश वस्तु के।
कोड की निम्नलिखित पंक्तियों पर ध्यान दें।
7150
यहां मैंने वेरिएबल MyDictionary को एक साधारण वस्तु के रूप में घोषित किया है, न कि शब्दकोश। अब यदि आप इस कोड को चलाते हैं, तो आपको कोई त्रुटि नहीं मिलेगी।