Подтвердить что ты не робот

Объявление раннего связанного объекта MSXML вызывает ошибку в VBA

Я пытаюсь импортировать XML-данные в excel. Итак, первая строка кода

Dim XMLDOC As MSXML2.DOMDocument

и это дает ошибку "определенный пользователем тип не определен"

4b9b3361

Ответ 1

Внутри VBE откройте "Инструменты" - "Ссылки", затем выберите "Microsoft XML", "v6.0" (или что-то другое). Это даст вам доступ к библиотеке объектов XML.

Обновлено с фантазией pic!

enter image description here

Ответ 2

Я определил DOMDocument, который нуждался в Microsoft XML, v3.0, но я выбрал Microsoft XML, v6.0 в ссылках, что вызвало приведенную ниже ошибку

"определенный пользователем тип не определен".

Решение

Решением было либо изменить DOMDocument на DOMDocument60 (60 использует версию 6.0), либо использовать ссылку Microsoft XML, v3.0 с DomDocument.


Просто быстрое замечание: если кто-то использует другую версию, такую как Microsoft XML, v4.0, то следует использовать DOMDocument40. Это связано с тем, что число в конце DOMDocument зависит от версии используемой библиотеки.

Ответ 3

Я работаю с макросом VBA Excel, который написал кто-то другой, и мне было поручено его исправить после недавней модернизации с Windows 7/Office 2010 до Windows 10/Office 2016. Я начал получать тот же "определенный пользователем тип, который не определен", ошибка компиляции. Моя предыдущая установка также имела MS XML v6.0, но, видимо, вам нужно конкретно указывать на эту версию в вашем коде в Windows 10 и/или Office 2016 (я не смог подтвердить, какое обновление вызвало проблему). Я смог решить проблему, выполнив поиск/замену следующим образом:

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

Ответ 4

Я использую Microsoft Windows 10 & Office 2016.

Использование Microsoft XML 6.0 не решает проблему.

Выбор Microsoft XML 3.0 исправил ошибку компиляции

Microsoft XML 3.0 reference