chr*_*ode 3 excel vba ms-office excel-vba
我正在尝试从代码中返回一个值.只显示代码要容易得多:
Function writeHeaderData() As IXMLDOMNode
Dim xmlDoc As New MSXML2.DOMDocument30
xmlDoc.async = False
xmlDoc.LoadXML "<Foo></Foo>"
Dim Foo As IXMLDOMNode
Set Foo = xmlDoc.DocumentElement
'code snip; includes appending lots of things to Foo
'the error is on this line:
writeHeaderData = Foo
Exit Function
End Function
Run Code Online (Sandbox Code Playgroud)
我已经谷歌搜索了,但它无济于事.这个函数是从主子程序调用的,我试图将返回的IXMLDOMNode追加到一个更大的函数中,但我不断收到"Object variable or With block variable not set"错误" writeHeaderData = Foo.这里有什么问题?
在VB(A)中,当你想要分配一个对象变量,包括赋值函数的返回值时,你需要使用Set,所以:
'the error is on this line:
writeHeaderData = Foo
Run Code Online (Sandbox Code Playgroud)
应该
Set writeHeaderData = Foo
Run Code Online (Sandbox Code Playgroud)