向 IXMLDOMNode 添加属性

Add attribute to IXMLDOMNode

我在以下代码的 xNamedNodeMap.setNamedItem (myNode) 行中得到 Run-time error 438: Object Doesnot support this propoerty or method

Sub appendChild()
    Dim xDoc As MSXML2.DOMDocument60
        Set xDoc = New MSXML2.DOMDocument60
        xDoc.LoadXML ("<root><child/></root>")
    Dim myNode As MSXML2.IXMLDOMNode
       Set myNode = xDoc.createNode(2, "Sci-Fi", "")
    Dim xNamedNodeMap As MSXML2.IXMLDOMNamedNodeMap
    Set xNamedNodeMap = xDoc.DocumentElement.ChildNodes.Item(0).Attributes
    xNamedNodeMap.setNamedItem (myNode)
    Debug.Print xDoc.XML
End Sub

有人可以帮我调试问题吗?

删除 (myNode)

中的括号
xNamedNodeMap.setNamedItem myNode

调用方法时不应使用括号,除非该方法 return 是一个值(并且您希望将 return 值分配给某物)。否则,() 导致 VBA 评估 包含的参数,并传入该评估的结果而不是(例如)myNode

评估您传递的参数时会发生什么取决于它是什么类型的变量,如果它是一个对象,该对象是否具有 default method/property.

没有默认值的对象 method/property 将引发运行时错误,如您在代码中所见。

注意 - 使用 Call 时情况有所不同,但这里的一般建议是不要使用 Call...