Декларация XML в Office 2013

У меня есть следующий код VBA для работы с XML с помощью Office 2010:

Public xmlDOM As DOMDocument

Public Sub setXML(xmlFileName As String)

    Set xmlDOM = CreateObject("MSXML.DOMDocument")
    xmlDOM.async = False
    xmlDOM.Load xmlFileName

End Sub

OBS: есть набор ссылок на Microsoft XML, v6.0

НО, если я открою тот же код в Office 2013, я получу ошибку, что

Public xmlDOM As DOMDocument

не объявлен, но есть еще ссылка на Microsoft XML, v6.0 set.

если я изменюсь

Public xmlDOM As DOMDocument

to

Public xmlDOM As MSXML.DOMDocument60

компилятор принимает, но при запуске кода я получаю сообщение об ошибке

Set xmlDOM = CreateObject("MSXML.DOMDocument") 

даже если я изменю его на

Set xmlDOM = CreateObject("MSXML2.DOMDocument60")

OBS: в Office 2013 установлен набор ссылок на Microsoft XML версии 6.0.

Что происходит?


person Braulio    schedule 29.09.2013    source источник
comment
Ваш Excel 2013 64-разрядный, а Excel 2010 32-разрядный? Они оба на одной версии ОС?   -  person Tim Williams    schedule 30.09.2013
comment
Привет! Да, один 64-битный (2013 г.), а другой 32-битный (2010 г.). Но я нашел решение, я заменил Public xmlDOM As DOMDocument на Public xmlDOM As MSXML2.DOMDocument60 и Set xmlDOM = CreateObject(MSXML.DOMDocument) на Set xmlDOM = New MSXML2.DOMDocument60, теперь он работает нормально для обеих версий   -  person Braulio    schedule 01.10.2013
comment
@Braulio Вы можете переместить ответ из раздела комментариев в раздел ответов, чтобы он был полезен для будущих читателей.   -  person Santosh    schedule 02.10.2013


Ответы (1)


Заменять

Public xmlDOM As DOMDocument

с

Public xmlDOM As MSXML2.DOMDocument60

и

Set xmlDOM = CreateObject("MSXML.DOMDocument")

с

Set xmlDOM = New MSXML2.DOMDocument60
person Stephenloky    schedule 13.11.2013