VBA:MSXML2.DOMDocument изменен на MSXML2.DOMDocument40 в макросе

Недавно я изменил MSXML2.DOMDocument на MSXML2.DOMDocument40 по какой-то причине. Он работает на моем компьютере. Но тот же код не работает на другом компьютере. В чем может быть причина? Пожалуйста, предложите какой-нибудь ответ.

1 ответ

Решение

MSXML2.DOMDocument всегда синоним MSXML2.DOMDocument30, Это соответствует библиотеке, на которую ссылается "Microsoft XML, v3.0" в VBA (msxml3.dll)

Microsoft рекомендует разработчикам ориентироваться на библиотеку "Microsoft XML, v6.0" (msxml6.dll) в своих приложениях. Это можно сделать, установив ссылку на эту библиотеку, а затем используя соответствующие типы - например, MSXML2.DOMDocument60,

Если использование библиотеки v6.0 невозможно, разработчики должны использовать библиотеку "Microsoft XML, v3.0" (msxml3.dll).

Использование любой другой версии библиотеки XML не рекомендуется, поскольку нет никакой гарантии, что в данной системе будут доступны любые версии, кроме v6.0 и v3.0. MSXML2.DOMDocument40 который вы использовали, соответствует библиотеке "Microsoft XML, v4.0" (msxml4.dll), и весьма вероятно, что на компьютере, на котором этот код не запускается, просто нет этой библиотеки.

Для получения полной информации см. http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx

изменить: если используется поздняя привязка, вы можете найти соответствующие ProgIDs здесь. Для DOMDocument60, вы бы использовали CreateObject("Msxml2.DOMDocument.6.0")

Другие вопросы по тегам