目前我正在使用 excel 2003 在 excel 仪表板上进行一个项目
我创建了这个自定义类并拥有这些类的集合。
Dim classCollection as Collection
自定义类的骨架结构说CustomClass1如图所示
Dim objName as string
Dim subClass as Collection
Public Sub CreateSubClass()
Dim cClass as CustomClass1
'manipulation and stuff goes here
subClass.Add cClass
end Sub
正如你所看到的,还有一个它自己的类的子集合,因为我想用更多的属性和类模块的东西做进一步的分解
以前我可以将集合显示到单元格中,而没有任何带有滚动条的子集合,滚动条也控制集合的索引,如下所示(对于粗略的绘图,这是我能描绘的最好的,因为我无法发布图片)
^ obj20
l obj21
l obj22
l obj23
v obj24
滚动条更改编码如下
Private Sub ScrollBar1_Change()
Application.ScreenUpdating = False
Dim classObject As CustomClass1
If classCollection.Count = 0 Then
Call initialise_dataset
End If
ScrollBar1.Min = 0
ScrollBar1.Max = classCollection.Count - 7
If ScrollBar1.Value < (classCollection.Count - 7) Then
For i = 0 To 6
Set classObject = classCollection(i + ScrollBar1.Value + 1)
Cells(5 + i, 2).Value = classObject.objName
Next i
End If
If ScrollBar1.Value > 0 Then
If classCollection.Count = 0 Then
Call initialise_dataset
End If
For i = 0 To 6
Set classObject = classCollection(i + ScrollBar1.Value + 1)
Cells(5 + i, 2).Value = classObject.objName
Next i
End If
Debug.Print ScrollBar1.Value
Application.ScreenUpdating = True
End Sub
所以现在我想添加树视图来显示子类。但是滚动条值会受到树视图函数的影响,这也不允许我获取集合的实际索引。那么我可以采取任何解决方法来使树视图与滚动条一起工作。
一个粗略的想法是这样的
^ -obj20
l obj20_1
l obj20_2
l +obj21
v +obj22
提前致谢!
PS 至于 + 和 - 符号,我可以使用后续超链接来标记类对象。所以不会有任何问题。