2012-06-28 50 views
23

Estoy tratando de importar datos XML en Excel .. Así que la primera línea del código esDeclarar objeto MSXML temprano con destino emite un error en VBA

Dim XMLDOC As MSXML2.DOMDocument

y esto da un error "definido por el usuario Tipo no definido"

+1

Además de lo que [a Scott] (http://stackoverflow.com/a/11245915/190829) sugirió, podría ' Dim ... Como Object' y evitar el problema vinculante temprano. – JimmyPena

+0

Marque la respuesta de Scott Holtzman como la correcta. –

Respuesta

28

Dentro de la VBE, vaya a Herramientas -.> Referencias, a continuación, seleccione Microsoft XML, v6.0 (o cualquiera que sea su última es Esto dará acceso a la biblioteca de objetos XML

actualizados. con ventilador cy pic!

enter image description here

+1

¡Gracias! Esto me estaba volviendo loco. Y la foto elegante sella el trato. – RossC

+0

maldita sigue usando Windows XP: | – user734028

+7

Como nota al margen, si está en Windows 8, puede necesitar hacer referencia a Microsoft XML v3 porque v6 no expone la clase DOMDocument. Ver el hilo http://social.technet.microsoft.com/Forums/en-US/f9180e5c-7c2f-44be-8415-d0d2b76e3f7f/microsoft-xml-v60-msxml6dll-and-vba –

20

tuve DOMDocument definida que necesitaba Microsoft XML, v3.0 pero tenía Microsoft XML, v6.0 seleccionan en las referencias que causaron el siguiente error

"usuario tipo definido no definido".

La solución

La solución fue bien cambiar DOMDocument a DOMDocument60 (60 usos ver 6.0) o utilizar la referencia Microsoft XML, v3.0 con DomDocument.

+0

Encontré que en cualquier momento los usuarios tenían que reiniciar excel, si se usa 'DOMDocument' en Windows10, el MS XML, v3.0 seleccionado volvería a v6.0. La mejor ruta es usar 'DOMDocument60' en mi humilde opinión. – CarloC

0

Trabajo con una macro de Excel de VBA que alguien más escribió y tuve la tarea de solucionarlo después de actualizar recientemente de Windows 7/Office 2010 a Windows 10/Office 2016. Empecé a recibir el mismo "tipo definido por el usuario no definido" " Error de compilación. Mi instalación anterior también tenía MS XML v6.0 pero aparentemente tiene que apuntar específicamente a esta versión en su código en Windows 10 y/o Office 2016 (no pude confirmar qué actualización causó el problema). Yo era capaz de resolver el problema haciendo una búsqueda/reemplazo en lo siguiente:

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