Объявление раннего связанного объекта MSXML вызывает ошибку в VBA
Я пытаюсь импортировать XML-данные в excel.
Итак, первая строка кода
Dim XMLDOC As MSXML2.DOMDocument
и это дает ошибку "определенный пользователем тип не определен"
Ответ 1
Внутри VBE откройте "Инструменты" - "Ссылки", затем выберите "Microsoft XML", "v6.0" (или что-то другое). Это даст вам доступ к библиотеке объектов XML.
Обновлено с фантазией pic!
Ответ 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 исправил ошибку компиляции