向 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
...
我在以下代码的 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
...