我是vba的新手,我想用这种格式的excel用15000个不同的文件夹填充一个巨大的“ Microsoft Treeview控件,版本6.0”:
/folderOne
/folderOne/subfolderOne
/folderOne/subfolderTwo
/folderTwo/subfolderOne
我使用过Pradeep Kumar's solution,但是如果我尝试使行数过多(可以容纳1000行,但不能容纳2000行),则会导致excel崩溃,如下所示:
Sub Button1_Click()
LoadTreeView1 TreeView1, 1, 1000
End Sub
Private Sub LoadTreeView1(TV As TreeView, min As Integer, max As Integer)
Dim i As Integer, RootNode As Node
TV.Nodes.Clear
Set RootNode = TV.Nodes.Add(, , "ROOT", "ROOT")
RootNode.Expanded = True
For i = min To max
AddNode TV, RootNode, Cells(i, 1)
Next
End Sub
Private Sub AddNode(TV As TreeView, RootNode As Node, Path As String)
Dim ParentNode As Node, NodeKey As String
Dim PathNodes() As String
On Error GoTo ErrH
PathNodes = Split(Path, "/")
NodeKey = RootNode.Key
For i = 1 To UBound(PathNodes)
Set ParentNode = TV.Nodes(NodeKey)
NodeKey = NodeKey & "/" & PathNodes(i)
TV.Nodes.Add ParentNode, tvwChild, NodeKey, PathNodes(i)
ParentNode.Expanded = True
Next
Exit Sub
ErrH:
If Err.Number = 35601 Then
Set ParentNode = RootNode
Resume
End If
Resume Next
End Sub
我的树视图在excel上看起来不错,类似于下面的视图,但是我的问题是我无法在其中放入足够的数据。
我已经将列表导出到访问中,但是过程有所不同,我有点迷茫,因为正如我所说,我是vba的新手。
谢谢您的帮助
答案 0 :(得分:1)
使用树形视图控件的主要策略是按需上传扩展行的数据。
想法是,没有人会滚动浏览树视图中的所有元素列表。
如果您是VBA的新手,这些细节可能会很难,所以使用链接列表可能会更好。例如
此解决方案超出了树视图控制的内存限制,适用于对象的分类法明确的情况。