Страницы: 1
RSS
Microsoft XML v3.0 в v6.0
 
Добрый день!

Есть макрос:
Код
Sub отгрузкипарсинг()
    'Reference: Microsoft XML, v3.0
    ответ = Sheets("Лист1").Range("A1")
    Dim xml As New MSXML2.DOMDocument, elem As MSXML2.IXMLDOMElement
     
    xml.async = False 'отключаем асинхонный запрос, иначе данные не успевают загрузиться
    xml.LoadXML (ответ)  'загружаем ответ xml
    For Each elem In xml.DocumentElement.SelectNodes("//soap:Body/m:getUPDListResponse/m:return/m:НеподписанныйДокумент")
        Debug.Print elem.SelectSingleNode("m:Номер").Text
    Next elem
End Sub

Он работает на Microsoft XML v3.0. Но, в книге есть ещё кучу макросов на Microsoft XML v6.0.
Две библиотеки не даёт подключить естественно (хотя...).
Как то можно макрос переделать его под  Microsoft XML v6.0?
Пробовал самостоятельно - сломал макрос  :D  
Всё что мы есть - это результат наших мыслей ©Будда
 
Добрый день

Как вариант - вместо раннего связывания использовать позднее. Для этого строку
Код
Dim xml As New MSXML2.DOMDocument, elem As MSXML2.IXMLDOMElement
заменить на
Код
Dim xml As Object, elem As Object
Set xml = CreateObject("MSXML2.DOMDocument")

Ну а в References оставить ссылку на Microsoft XML v6.0 (для других макросов)
Изменено: webley - 09.11.2022 13:10:12
 
webley, Оооо благодарю!
Надо почитать про позднее связывание.
Спасибо, работает!  
Всё что мы есть - это результат наших мыслей ©Будда
 
Из опыта:
1) используем только Microsoft XML v3.0 (6-й версии нет на некоторых компьютерах) — вряд ли вам нужно что-то специфичное, появившееся только в 6 версии библиотеки
2) используем раннее связывание с версией 3.0 (она есть на всех компах), или позднее связывание, если используется 6-я версия.
Страницы: 1
Наверх