2012-06-28 57 views
23

Sto cercando di importare i dati XML in Excel .. Così la prima riga del codice èDichiarare oggetto MSXML precoce legato genera un errore in VBA

Dim XMLDOC As MSXML2.DOMDocument

e questo dà un errore "definito dall'utente tipo non definito"

+1

In aggiunta a quanto [Scott] (http://stackoverflow.com/a/11245915/190829) hanno suggerito, si potrebbe ' Dim ... As Object' ed evita il problema di binding anticipato. – JimmyPena

+0

Si prega di contrassegnare la risposta di Scott Holtzman come corretta. –

risposta

28

All'interno del VBE, andare in Strumenti -.> Riferimenti, quindi selezionare Microsoft XML, v6.0 (o qualunque sia il vostro ultimo è Questo vi darà accesso alla libreria di oggetti XML

aggiornati. con ventilatore cy pic!

enter image description here

+1

Grazie! Questo mi stava facendo impazzire. E la foto elegante suggella l'affare. – RossC

+0

dannazione ancora usando windows xp: | – user734028

+7

Come nota a margine, se si utilizza Windows 8, potrebbe essere necessario fare riferimento a Microsoft XML v3 poiché v6 non espone la classe DOMDocument. Vedi thread http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

ho avuto DOMDocument definito che aveva bisogno di Microsoft XML, v3.0 ma ho avuto Microsoft XML, v6.0 selezionato di riferimenti che hanno causato l'errore sotto

"utente tipo definito non definito".

La soluzione

La soluzione era cambiare sia DOMDocument a DOMDocument60 (60 usi ver 6.0) oppure utilizzare il riferimento Microsoft XML, v3.0 con DomDocument.

+0

Ho scoperto che ogni volta che gli utenti dovevano riavviare Excel, se "DOMDocument" viene utilizzato in Windows10, MS XML, v3.0 selezionato tornerà alla v6.0. Il percorso migliore è usare IMHO 'DOMDocument60'. – CarloC

0

Io lavoro con una macro Excel VBA che qualcun altro ha scritto e sono stato incaricato di risolverlo dopo l'aggiornamento da Windows 7/Office 2010 a Windows 10/Office 2016. Ho iniziato a ricevere lo stesso "tipo definito dall'utente non definito "errore di compilazione. La mia installazione precedente aveva anche MS XML v6.0 ma a quanto pare devi indicare specificamente questa versione nel tuo codice su Windows 10 e/o Office 2016 (non ero in grado di confermare quale aggiornamento ha causato il problema). Sono stato in grado di risolvere il problema facendo un Trova/Sostituisci dal seguente:

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