सामग्री सारणी
Excel मध्ये VBA सोबत काम करताना आपल्याला सामोरे जाणाऱ्या सर्वात सामान्य त्रुटींपैकी एक म्हणजे वापरकर्ता-परिभाषित प्रकार परिभाषित केलेला नाही. या लेखात, ही त्रुटी का आली आणि ही त्रुटी कशी सोडवावी हे मी तुम्हाला दाखवणार आहे.
सराव वर्कबुक डाउनलोड करा
आपण करत असताना व्यायाम करण्यासाठी हे सराव वर्कबुक डाउनलोड करा. हा लेख वाचत आहात.
वापरकर्ता-परिभाषित प्रकार परिभाषित नाही.xlsm
2 कारणे आणि उपाय वापरकर्ता परिभाषित Excel VBA
मध्ये टाईप नॉट डिफाईंड आहे 2 Excel VBA मधील या वारंवार येणाऱ्या त्रुटींमागे प्रमुख समस्या आहेत. चला त्यांचे तपशीलवार अन्वेषण करू आणि त्यांचे निराकरण करण्याचे मार्ग शोधू.
1. व्हेरिएबल्स घोषित करताना स्पेलिंग एरर
हे या एररमागील प्रमुख कारण आहे. बर्याच वेळा, त्रुटी “वापरकर्ता-परिभाषित प्रकार परिभाषित नाही” व्हेरिएबल्स घोषित करताना स्पेलिंग त्रुटीमुळे उद्भवते.
कोडांच्या खालील ओळी पहा.
1826
तुम्ही हा कोड चालवल्यास, तुम्हाला त्रुटीच्या उपस्थितीबद्दल सूचित करणारा एक त्रुटी बॉक्स मिळेल “वापरकर्ता-परिभाषित प्रकार परिभाषित नाही”. त्यासोबत, तुम्हाला कोडची दुसरी ओळ निळ्या रंगात हायलाइट केलेली दिसेल, जिथे मी “स्ट्रिंग” च्या जागी “strng” लिहिले आहे.
मला आशा आहे की तुम्हाला बिंदू मिळेल. VBA व्हेरिएबल प्रकार ओळखू शकला नाही “strng” , म्हणूनच तो एक नवीन व्हेरिएबल प्रकार मानला आणि वाटले की आपण ते कुठेतरी परिभाषित केले आहे. पण जेव्हा तेतुम्ही ते कुठेही घोषित केलेले नाही असे आढळले, त्यामुळे एक त्रुटी निर्माण झाली.
म्हणून, साधे VBA कोड चालवताना, तुम्हाला ही त्रुटी आढळल्यास, प्रथम तुमच्या व्हेरिएबल प्रकारांचे सर्व स्पेलिंग तपासा.
2. योग्य संदर्भाचा अभाव
या त्रुटीमागील हे आणखी एक कारण आहे. ते योग्य संदर्भाचा अभाव आहे. कधीकधी आम्ही आमच्या कोडमध्ये काही ऑब्जेक्ट्स वापरतो ज्यांना Visual Basic Reference box मधून योग्य संदर्भ आवश्यक असतो. अन्यथा, VBA ऑब्जेक्ट ओळखत नाही.
खालील VBA कोड पहा.
3243
हा कोड चालवा. तुम्हाला तीच जुनी एरर मिळेल “वापरकर्ता-परिभाषित प्रकार परिभाषित नाही”, डिक्शनरी ऑब्जेक्ट हायलाइट करताना. याचे कारण असे की VBA डिक्शनरी ऑब्जेक्ट ओळखू शकला नाही, आणि त्याला वापरकर्ता-परिभाषित व्हेरिएबल मानले, जे चुकून परिभाषित केले गेले नाही.
आता सर्वात मोठा प्रश्न आहे, ही त्रुटी कशी सोडवायची? सोपे. या त्रुटीचे निराकरण करण्याचे 2 मार्ग आहेत.
⧪ उपाय 1: व्हिज्युअल बॉक्स संदर्भ बॉक्समधून आवश्यक संदर्भ तपासणे
हे आहे या समस्येचे निराकरण करण्याचा सर्वात हुशार मार्ग. साधने > वर जा. संदर्भ Visual Basic रिबनमधील बटण. References वर क्लिक करा.
References नावाचा डायलॉग बॉक्स उघडेल. स्क्रोल करा आणि शोधा मायक्रोसॉफ्ट स्क्रिप्टिंग रनटाइम (हे तुम्ही वापरत असलेल्या ऑब्जेक्टवर अवलंबून आहे. शब्दकोशऑब्जेक्ट ला मायक्रोसॉफ्ट स्क्रिप्टिंग रनटाइम ओळखण्यासाठी आवश्यक आहे. म्हणून, VBA कोडमध्ये ऑब्जेक्ट वापरताना, तुम्हाला VBA द्वारे ओळखण्यासाठी त्याची पूर्वतयारी माहित असणे आवश्यक आहे. अधिक माहितीसाठी या लिंकला भेट द्या.). ते तपासा.
आता परत या आणि कोड चालवा. तुम्हाला कोणत्याही त्रुटी मिळणार नाहीत. कारण VBA यावेळी डिक्शनरी ऑब्जेक्ट ओळखू शकतो.
⧪ उपाय २: विशिष्ट ऑब्जेक्ट ऐवजी शुद्ध ऑब्जेक्ट म्हणून घोषित करणे
या समस्येचे निराकरण करण्याचा आणखी एक मार्ग आहे. तुम्ही डिक्शनरी ऑब्जेक्ट ऐवजी ऑब्जेक्टला शुद्ध ऑब्जेक्ट म्हणून घोषित करू शकता.
कोडांच्या खालील ओळी लक्षात घ्या.
8688
येथे मी व्हेरिएबल MyDictionary साधा ऑब्जेक्ट म्हणून घोषित केले आहे, Dictionary नाही. आता तुम्ही हा कोड चालवलात तर तुम्हाला कोणतीही त्रुटी येणार नाही.