web-dev-qa-db-fra.com

La déclaration d'un objet MSXML lié tôt génère une erreur dans VBA

J'essaie d'importer des données xml dans Excel .. Donc la première ligne du code est

Dim XMLDOC As MSXML2.DOMDocument

et cela donne une erreur "type défini par l'utilisateur non défini"

28
user1486889

À l'intérieur du VBE, accédez à Outils -> Références, puis sélectionnez Microsoft XML, v6.0 (ou quel que soit votre dernier. Cela vous donnera accès à la bibliothèque d'objets XML.

Mise à jour avec photo fantaisie!

enter image description here

35
Scott Holtzman

J'avais DOMDocument défini ce qui avait besoin Microsoft XML, v3.0 mais j'avais Microsoft XML, v6.0 sélectionné dans les références à l'origine de l'erreur ci-dessous

msgstr "type défini par l 'utilisateur non défini".

La solution

La solution consistait à remplacer DOMDocument par DOMDocument60 (60 utilise la version 6.0) ou utilisez le Microsoft XML, v3.0 référence avec DomDocument.


Juste une note rapide, si quelqu'un utilise une version différente, telle que Microsoft XML, v4.0, alors DOMDocument40 Devrait être utilisé. Cela est dû au fait que le numéro à la fin de DOMDocument est spécifique à la version de la bibliothèque utilisée.

26
Joshua Duxbury

Je travaille avec une macro Excel VBA que quelqu'un d'autre a écrite et j'ai été chargé de la réparer après une mise à niveau récente de Windows 7/Office 2010 vers Windows 10/Office 2016. J'ai commencé à recevoir la même erreur de compilation "type défini par l'utilisateur non défini". Mon installation précédente avait également MS XML v6.0 mais apparemment, vous devez spécifiquement pointer vers cette version dans votre code sur Windows 10 et/ou Office 2016 (je n'ai pas pu confirmer la mise à niveau à l'origine du problème). J'ai pu résoudre le problème en effectuant une recherche/remplacement sur les éléments suivants:

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

J'utilise Microsoft Windows 10 et Office 2016.

L'utilisation de Microsoft XML 6.0 ne résout pas le problème.

La sélection Microsoft XML 3.0 a corrigé l'erreur de compilation

Microsoft XML 3.0 reference

2