ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5339|回复: 4

VBA treeview添加子节点问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-31 12:51 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
问题:VBA利用treeview制作会计科目表树形菜单,科目代码和名称来源于单元格,详见文档内说明
QQ截图20160131125237.png

科目树形菜单.rar

19.56 KB, 下载次数: 233

TA的精华主题

TA的得分主题

发表于 2016-1-31 16:12 | 显示全部楼层
供参考。
  1. Sub showKMB()
  2.     Dim a1%, j$, Arr()
  3.     With Sheet1
  4.         a1 = .Cells(.Rows.Count, 1).End(xlUp).Row
  5.         Arr = .Range("a1:b" & a1).Value
  6.     End With
  7.     With 科目表.TreeView1
  8.         .Style = tvwTreelinesPlusMinusPictureText
  9.         .LineStyle = tvwRootLines
  10.         .CheckBoxes = False
  11.         For i = 1 To 5
  12.             .Nodes.Add , , "_" & i, Array(, "资产类", "负债类", "净资产类", "收入类", "支出类")(i)
  13.         Next
  14.         For i = 2 To a1
  15.             j = "_" & Left(Arr(i, 1), IIf(Len(Arr(i, 1)) = 4, 1, Len(Arr(i, 1)) - 2))
  16.             .Nodes.Add j, tvwChild, "_" & Arr(i, 1), Range("A" & i) & "_" & Range("B" & i)
  17.         Next
  18.     End With
  19. End Sub
复制代码

ahaoge_科目树形菜单.rar

15.21 KB, 下载次数: 343

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-31 18:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-3-15 17:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-12-4 10:27 | 显示全部楼层
正在学树控件,用玄雨清风的方法一个一个节点添加学会了,用蓝色幻想的方法引用表格单元格学会了
Private Sub UserForm_Initialize()
    Dim NodeX As Node   
    Set NodeX = TreeView1.Nodes.Add(, , "课程科目", "课程科目")
    NodeX.BackColor = &HFFFFC0
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "语文", "语文")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "数学", "数学")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "外语", "外语")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "政治", "政治")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "物理", "物理")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "化学", "化学")
    Set NodeX = TreeView1.Nodes.Add("课程科目", tvwChild, "生物", "生物")
    Dim i As Long
    For i = 2 To TreeView1.Nodes.Count
    TreeView1.Nodes(i).BackColor = &HFF&
    Next i   
    'TreeView2.ImageList = ImageList1
    Set Nodx = TreeView2.Nodes.Add(, , "总行", "商业银行 网点:")
    Nodx.BackColor = &HFF&
    For X = 2 To [A65536].End(xlUp).Row
        Text = Cells(X, "A")
        Number = Cells(X, "B")
        If Len(Cells(X, "B")) = 1 Then
            Set Nodx = TreeView2.Nodes.Add("总行", tvwChild, "key" & Number, Number & " " & Text)
            Nodx.BackColor = &HFFFF&
        ElseIf Len(Cells(X, "B")) = 3 Then
            Set Nodx = TreeView2.Nodes.Add("key" & Left(Number, 1), tvwChild, "key" & Number, Number & " " & Text)
            Nodx.BackColor = &HFFFF00
        ElseIf Len(Cells(X, "B")) = 5 Then
            Set Nodx = TreeView2.Nodes.Add("key" & Left(Number, 3), tvwChild, "key" & Number, Number & " " & Text)
            Nodx.BackColor = &HFF00FF
       End If
    Next
    Set NodeX = Nothing
End Sub
但我最想学用“常数数组ARRAY”的方法添加节点,不引用表格单元格(不引用数据库数据),直接用代码,如本贴所示,看不懂,好象用到了ARRAY,如果要添加三级节点,根节点,子节点,孙节点,不知怎么用?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-29 21:54 , Processed in 0.046290 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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