Treeview和滚动条交互使用Excel VBA 2003

目前我正在使用excel 2003在excel仪表板上进行项目工作

我有这个自定义类创build并拥有这个类的集合。

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 

所以现在我想添加树视图来显示子类。 但是滚动条的值将会受到treeview函数的影响,这也不能让我得到集合的实际索引。 那么是否有任何解决办法,我可以做,使树视图与滚动条一起工作。

一个粗略的想法是这样的

 ^ -obj20 l obj20_1 l obj20_2 l +obj21 v +obj22 

提前致谢!

PS至于+和 – 标志,我可以使用超链接来标记类对象。 那么这个问题就没有问题了。