Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2005|回复: 5

[已解决]treeview出现的不解现象

[复制链接]
发表于 2015-8-17 20:59 | 显示全部楼层 |阅读模式
本帖最后由 蝶·舞 于 2015-8-18 10:37 编辑

QQ图片20150817205220.png
图中的K类内容怎么变到了A类的三级科目里去了?
TREEVIEW.zip (12.85 KB, 下载次数: 11)
发表于 2015-8-17 22:39 | 显示全部楼层
本帖最后由 gufengaoyue 于 2015-8-17 23:10 编辑

呃,习惯了简短的变量名,这么长的看得头晕,呵呵。。
错误提示:关键字不唯一。
你把[B24]改成 2 ,看看效果,再把[B25]再改成 1 看看 。
可能在循环的时候跳过或漏了。具体我没仔细测试。
下面我的代码供参考:
  1. Private Sub UserForm_Initialize()
  2. Dim arr, brr(), a&
  3. arr = ActiveSheet.UsedRange
  4. With TreeView1
  5.     .Nodes.Clear
  6.         .LineStyle = tvwRootLines
  7.         .Style = 6
  8.     For a = 2 To UBound(arr)
  9.         ReDim Preserve brr(1 To arr(a, 2)): brr(arr(a, 2)) = arr(a, 1)
  10.         If arr(a, 2) = 1 Then
  11.             .Nodes.Add , , arr(a, 1), arr(a, 1)
  12.         Else
  13.             .Nodes.Add brr(arr(a, 2) - 1), 4, arr(a, 1), arr(a, 1)
  14.         End If
  15.     Next
  16. End With
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-8-18 08:46 | 显示全部楼层
gufengaoyue 发表于 2015-8-17 22:39
呃,习惯了简短的变量名,这么长的看得头晕,呵呵。。
错误提示:关键字不唯一。
你把改成 2 ,看看效果, ...

能标注一下各段代码的意思吗?谢谢
回复

使用道具 举报

发表于 2015-8-18 10:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 gufengaoyue 于 2015-8-18 10:34 编辑
蝶·舞 发表于 2015-8-18 08:46
能标注一下各段代码的意思吗?谢谢
  1. Private Sub UserForm_Initialize()
  2. Dim arr, brr(), a&
  3. arr = ActiveSheet.UsedRange                   '定义数组
  4. With TreeView1
  5.     .Nodes.Clear                                         '清除
  6.         .LineStyle = tvwRootLines                '设置线条样式
  7.         .Style = 6                                         '设置样式
  8.     For a = 2 To UBound(arr)                     '循环开始
  9.         ReDim Preserve brr(1 To arr(a, 2))    '扩大或缩小当前使用的级别
  10.         brr(arr(a, 2)) = arr(a, 1)                    '设置级别及对应的key
  11.         If arr(a, 2) = 1 Then                          '如果级别是1
  12.             .Nodes.Add , , arr(a, 1), arr(a, 1)   '则直接添加到根目录
  13.         Else
  14.             .Nodes.Add brr(arr(a, 2) - 1), 4, arr(a, 1), arr(a, 1)
  15.             '如果级别不是1,则加入到相应的父级key : brr(arr(a,2) - 1)
  16.         End If
  17.     Next
  18. End With
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2015-8-18 10:48 | 显示全部楼层
TREEVIEW4.rar (12.37 KB, 下载次数: 5)

评分

参与人数 1 +21 收起 理由
蝶·舞 + 21 多谢指点

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-8-18 10:54 | 显示全部楼层
爱疯 发表于 2015-8-18 10:48
原因:key is not unique in collection

说明:

一语惊醒梦中人,多谢指点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-3 23:37 , Processed in 0.380088 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表