2012-06-28 13 views
23

मैं एक्सेल में XML डेटा आयात करने की कोशिश कर रहा हूँ में एक त्रुटि फेंकता है .. तो कोड की पहली पंक्तिघोषणा जल्दी बाध्य MSXML वस्तु VBA

Dim XMLDOC As MSXML2.DOMDocument

है और यह एक त्रुटि देता है "उपयोगकर्ता परिभाषित परिभाषित नहीं प्रकार "

+1

के लिए क्या [स्कॉट] इसके अतिरिक्त (http://stackoverflow.com/a/11245915/190829) ने सुझाव दिया है, तो आप कर सकते थे ' मंद ... ऑब्जेक्ट के रूप में और प्रारंभिक बाध्यकारी मुद्दे से बचें। – JimmyPena

+0

कृपया स्कॉट होल्ट्ज़मैन के उत्तर को सही के रूप में चिह्नित करें। –

उत्तर

28

VBE के अंदर, टूल्स में जाएँ -।> संदर्भ है, तो Microsoft XML, v6.0 का चयन करें (या जो भी अपने नवीनतम है यह आप XML वस्तु लाइब्रेरी तक पहुंच हासिल होगी

अपडेट किया गया। प्रशंसक के साथ साइ तस्वीर!

enter image description here

+1

धन्यवाद! यह मुझे पागल गाड़ी चला रहा था। और फैंसी तस्वीर सौदा सील करता है। – RossC

+0

अभी भी विंडोज एक्सपी का उपयोग कर लानत: | – user734028

+7

एक साइड नोट के रूप में, यदि आप विंडोज 8 पर हैं, तो आपको माइक्रोसॉफ्ट एक्सएमएल v3 को संदर्भित करने की आवश्यकता हो सकती है क्योंकि v6 DOMDocument क्लास का पर्दाफाश नहीं करता है। थ्रेड देखें http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

मैं DOMDocument परिभाषित जो Microsoft XML, v3.0 की जरूरत थी, लेकिन मैं Microsoft XML, v6.0 संदर्भ जो नीचे त्रुटि

"उपयोगकर्ता परिभाषित प्रकार नहीं परिभाषित" की वजह से में चयनित किया था।

समाधान

समाधान या तो (6.0 ver 60 का उपयोग करता है) DOMDocumentDOMDocument60 को बदलने के लिए या DomDocument साथ Microsoft XML, v3.0 संदर्भ का उपयोग किया गया था।

+0

मैंने पाया कि किसी भी समय उपयोगकर्ताओं को एक्सेल रीबूट करना था, यदि Windows10 में 'DOMDocument' का उपयोग किया जाता है, तो एमएस एक्सएमएल, v3.0 चयनित v6.0 पर वापस जायेगा। बेहतर मार्ग 'DOMDocument60' IMHO का उपयोग करना है। – CarloC

0

मैं एक वीबीए एक्सेल मैक्रो के साथ काम करता हूं जिसे किसी और ने लिखा था और मुझे हाल ही में विंडोज 7/ऑफिस 2010 से विंडोज 10/ऑफिस 2016 तक अपग्रेड करने के बाद इसे ठीक करने के लिए काम किया गया था। मुझे वही "उपयोगकर्ता परिभाषित प्रकार परिभाषित नहीं किया गया "संकलन त्रुटि। मेरे पिछले इंस्टॉलेशन में एमएस एक्सएमएल v6.0 भी था, लेकिन जाहिर है कि आपको विशेष रूप से विंडोज 10 और/या ऑफिस 2016 पर अपने कोड में इस संस्करण को इंगित करना होगा (मैं यह पुष्टि करने में सक्षम नहीं था कि किस अपग्रेड ने समस्या उत्पन्न की है)। मैं/एक ढूँढें करके समस्या को हल करने पर निम्नलिखित बदलें करने में सक्षम था:

"DOMDocument" to "MSXML2.DOMDocument60" 
"XMLHTTP" to "MSXML2.XMLHTTP60"