有没有办法将manydifferent文件夹放入树视图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法将manydifferent文件夹放入树视图相关的知识,希望对你有一定的参考价值。
我是vba的新手,我想用这种格式填写一个巨大的“microsoft treeview control,版本6.0”,其中有15000个不同的excel文件夹:
/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的新手。
谢谢您的帮助
答案
使用树视图控件的主要策略是按需上载扩展行的数据。
- 首先,你只是加载高级树视图元素(clienti list)
- 在用户点击节点之后,调用用子元素填充相应节点的方法
想法是没有人会滚动浏览树视图中的所有元素列表。
如果您是VBA的新手,这些细节可能会很困难,因此最好使用链接列表。例如。
- list1:包含clienti列表
- list2:包含日期
- 在list1中选择元素之后,动态更改list2 recordsource,以便提供仅与list1对应的元素列表
此解决方案超出了树视图控制的内存限制,并且如果您对对象具有明确的分类深度,则适用。
以上是关于有没有办法将manydifferent文件夹放入树视图的主要内容,如果未能解决你的问题,请参考以下文章