Тип IXMLDOMNode не подходит в качестве параметра в VBA в Win 7 - PullRequest
0 голосов
/ 30 октября 2018

Почему этот код не всегда работает в Windows 7 64bit (Office Word 2016, 32 бита), MSXML6 в ссылках.

Работает на Win10:

Function GetNodeText(ByVal node As IXMLDOMNode) As String
    If IsNothing(node) Then
        Exit Function
    End If
   GetNodeText = node.text
End Function

Function IsNothing(x) As Boolean
   IsNothing = False
   If IsObject(x) Then
     If TypeName(x) = "Nothing" Then
       IsNothing = True
     End If
   End If
 End Function

Но не работает в Win7 (ошибка: несоответствие типов) во время вызова GetNodeText функции.

Я должен изменить тип параметра на Variant, затем работает:

Function GetNodeText(ByVal nodeVar As Variant) As String
   Dim node as IXMLDOMNode
   Set node = nodeVar 
   If IsNothing(node) Then
      Exit Function
   End If
   GetNodeText = node.text
End Function

Но мне не нравится это решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...