调用自定义属性时出错

时间:2012-07-17 04:19:02

标签: vba excel-vba excel

我希望使用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

由于

1 个答案:

答案 0 :(得分: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个关键字。