2012-10-11 30 views
5

Recientemente cambié "MSXML2.DOMDocument" a "MSXML2.DOMDocument40" por algún motivo. Funciona en mi computadora. Pero el mismo código no funciona en otra computadora. ¿Cuál podría ser el motivo? Por favor sugiera alguna respuesta.VBA: MSXML2.DOMDocument cambiado a MSXML2.DOMDocument40 en macro

+2

¿Qué aspecto tiene "no funciona"? –

+0

@TimWilliams: Lo siento por la publicación incorrecta. De hecho, está funcionando bien. No voy a eliminar esta publicación ya que "Barrowc" a continuación he puesto información útil. Y no he encontrado la publicación en este sitio web. – user1495475

Respuesta

14

MSXML2.DOMDocument es siempre un sinónimo de MSXML2.DOMDocument30. Esto corresponde a la biblioteca a la que hace referencia "Microsoft XML, v3.0" en VBA (msxml3.dll)

Microsoft recomienda que los desarrolladores se dirijan a la biblioteca "Microsoft XML, v6.0" (msxml6.dll) en sus aplicaciones . Esto se haría estableciendo una referencia a esa biblioteca y luego utilizando los tipos apropiados, p. MSXML2.DOMDocument60.

Si no es posible usar la biblioteca v6.0, los desarrolladores deberían recurrir a la biblioteca "Microsoft XML, v3.0" (msxml3.dll).

No se recomienda el uso de ninguna otra versión de la biblioteca XML, ya que no hay garantía de que haya versiones disponibles distintas de v6.0 y v3.0 en un sistema determinado. El MSXML2.DOMDocument40 que usó corresponde a la biblioteca "Microsoft XML, v4.0" (msxml4.dll) y es muy probable que la computadora donde este código no se ejecuta simplemente no tenga esa biblioteca disponible.

Para más detalles ver http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx

edición: si se utiliza el enlace en tiempo, se pueden encontrar los ProgIDs apropiadas here. Para DOMDocument60, usaría CreateObject("Msxml2.DOMDocument.6.0")

+0

: lamento que haya habido un error en mi código. De hecho, funciona bien, ¿me recomiendas que no use "MSXML2.DOMDocument40" todavía? Porque voy a poner el archivo en otros sistemas también. Cuando lo hice buscar en mi sistema con todos los dlls como "msxml3.dll", msxml4.dll, msxml6.dll encontré estos en la carpeta C: \ Windows y en otras carpetas también. Sugiéralos. – user1495475

+0

Me gustaría ir con la recomendación de Microsoft y usar la versión 6.0 (msxml6.dll) solamente. Si eso no fuera posible, usaría la versión 3.0. No usaría las versiones 4.0 o 5.0 bajo ninguna circunstancia – barrowc

Cuestiones relacionadas