我在使用我在另一个类中创建的属性时遇到问题。我有两个类,一个叫做Vertex,另一个叫做Edge。 Edge,Parent和Child的两个属性是Vertex对象。这是我尝试使用它们的方法。
Option Explicit
Public Sub OrgChart()
Dim Vertices As Collection
Dim Edges As Collection
Dim vParent As Vertex
Dim vChild As Vertex
Dim eEdge As Edge
Dim rEdgeRow As Range
Set rEdgeRow = ActiveSheet.Range("A1:C1")
Do While Len(rEdgeRow(1, 1).Value) > 0
Set vChild = New Vertex
Set vParent = New Vertex
Set eEdge = New Edge
vChild.Name = rEdgeRow(1, 1).Value
vChild.Dummy = False
vParent.Name = rEdgeRow(2, 1).Value
vParent.Dummy = False
eEdge.Parent = vParent
eEdge.Child = vChild
eEdge.Percent = rEdgeRow(3, 1).Value
Set rEdgeRow = rEdgeRow.Offset(1, 0)
Loop
End Sub
当我运行时,我收到错误
“运行时错误'91':对象变量或未设置块变量”
调试器指示它在行
处断开eEdge.Parent = vParent
我认为问题与eEdge.Parent未初始化有关,但我尝试使用
Set eEdge.Parent = New Vertex
我也遇到了同样的问题。
如果它有用,我也可以发布类代码,虽然它们非常简单,只包含Property Get和Property Let函数。
如果发布此内容我做错了,我道歉;这是我第一次在SO上发布任何内容。
谢谢, 埃里克
答案 0 :(得分:1)
我可能不理解这一点,但你是否尝试过:
Set eEdge.Parent = vParent
Set eEdge.Child = vChild
如果它们是对象,则需要使用“设置”
...此外,如果这不能解决问题,您可以发布Vertex类的代码 - 您可能需要在构造函数中以不同方式调暗Parent和Child对象...