Excel精英培训网

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

[已解决]VBA中如何使用 treeview控件

[复制链接]
发表于 2022-3-27 11:00 | 显示全部楼层 |阅读模式
在VBA窗体中加入treeview控件后,在控件中如何加入复选框,如何设置选中节点后,就选中了它的所有子项,如何设置出有加减号的效果,如何获取选项是否被选中。
请网友指导,谢谢。
最佳答案
2022-3-27 17:50
本帖最后由 zjdh 于 2022-3-27 17:53 编辑

给你一个例子,除了选中节点即选中全部子节点,其余你需要的项目都包含了,自己去研究吧。
TreeView.rar (25.88 KB, 下载次数: 28)
加减号.png
节点.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-3-27 17:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2022-3-27 17:53 编辑

给你一个例子,除了选中节点即选中全部子节点,其余你需要的项目都包含了,自己去研究吧。
TreeView.rar (25.88 KB, 下载次数: 28)
回复

使用道具 举报

 楼主| 发表于 2022-3-27 19:22 | 显示全部楼层
谢谢
想选中节点时,所有子项都自动选中,取消一个子项时,父节点选中就被取消,如何设置(如何写出代码)
回复

使用道具 举报

发表于 2022-3-27 21:31 | 显示全部楼层
Private Sub Treeview1_NodeCheck(ByVal Node As MSComctlLib.Node)
'复选框事件,选中节点,其子节点全部选中。
    KY = Node.Key
    For Each Nde In TreeView1.Nodes
        If InStr(Nde.FullPath, KY & "\") Then Nde.Checked = True
    Next
End Sub
回复

使用道具 举报

发表于 2022-3-27 21:45 | 显示全部楼层

本帖最后由 zjdh 于 2022-3-27 21:46 编辑

又有新要求:
Private Sub Treeview1_NodeCheck(ByVal Node As MSComctlLib.Node)   '复选框事件
    '选中节点,则其所有子节点全部选中
    KY = Node.Key
    For Each Nde In TreeView1.Nodes
        If InStr(Nde.FullPath, KY & "\") Then Nde.Checked = True
    Next
    '子节点取消选中,则其父节点也取消
    If Node.Checked = False Then
        KY = Split(Node.FullPath, "\")(0)
        TreeView1.Nodes(KY).Checked = False
    End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2022-3-28 11:15 | 显示全部楼层
本帖最后由 向前650809 于 2022-3-28 11:17 编辑

代码
KY = Node.Key
是何意KY表达什么
谢谢


回复

使用道具 举报

发表于 2022-3-29 16:54 | 显示全部楼层
KY 就是个变量啊,可由任意字符取代。
回复

使用道具 举报

 楼主| 发表于 2022-3-30 14:13 | 显示全部楼层
本帖最后由 向前650809 于 2022-3-30 14:23 编辑

Node.Key
表达何意如何设置代码,使折叠展开时,节点处显示+-号
出现下面图的效果
节点.png
回复

使用道具 举报

发表于 2022-3-31 15:45 | 显示全部楼层
TreeView1.LineStyle = tvwRootLines  '显示根节点连线
回复

使用道具 举报

发表于 2022-3-31 16:35 | 显示全部楼层
本帖最后由 zjdh 于 2022-3-31 16:37 编辑

在另一个帖中回复
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 13:47 , Processed in 0.796317 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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