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")