2

我希望使用 vba 进行深度优先搜索算法,所以我定义了一个名为“node”的对象,它应该包含一个“parentNode”。

我试图将 parentNode 定义为集合并使用以下

Public Property Let Parent(ByRef inputNode As Node)
    Set parentNode = New Collection
    hasParentNode = True
    parentNode.Add inputNode

End Property

Public Property Get Parent() As Node
    Parent = parentNode.Item(1)
End Property

但是当我打电话给 node.Parent 我得到了Object variable or With block variable not set

我知道这是由于“Parent = parentNode.Item(1)”这一行,正确的做法应该是什么?我希望它返回由 Ref 分配的 parnetNode

谢谢

4

1 回答 1

3

由于 Node 是一个对象(我假设,我不知道Node实际上是什么类),因此您的代码缺少Set关键字:

Public Property Get Parent() As Node
  Set Parent = parentNode.Item(1) 
End Property

得到Object variable or With block variable not set 通常有时意味着缺少Set关键字。

于 2012-07-17T14:16:02.090 回答