3

コードから値を返そうとしています。コードを表示する方がはるかに簡単です。

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

私はすでにグーグル検索をしました、しかしそれは役に立ちませんでした。この関数はメインサブルーチンから呼び出されており、返されたIXMLDOMNodeをより大きなものに追加しようとしていますが"Object variable or With block variable not set、行に「エラー」が表示され続けwriteHeaderData = Fooます。ここで何が起こっているのでしょうか。

4

1 に答える 1

7

VB(A)では、関数の戻り値の割り当てを含め、オブジェクト変数に割り当てる場合は、を使用する必要があります。したがって、次のようになります。Set

'the error is on this line:
writeHeaderData = Foo

する必要があります

Set writeHeaderData = Foo
于 2012-05-14T16:05:20.663 に答える