ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] vb TreeView 树状控件未端支点的终级搜索

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-9 15:33 | 显示全部楼层
本帖最后由 juanchan 于 2012-2-9 15:35 编辑

TreeView search.rar (31.53 KB, 下载次数: 27) 按您这个方法试了一下,如查找"羊皮",只能找到最后一个相符的记录并展开. 我是初学者, 没有找到问题所在,麻烦您了.

TA的精华主题

TA的得分主题

发表于 2012-2-9 16:59 | 显示全部楼层
Sub SearchWhat(stxt As String)
On Error Resume Next
  Dim i As Long, p As Long, m As Long

  If TreeView.Nodes.Count = 0 Then '判断TreeView里是否有节点
     MsgBox "无相关节点记录!", vbExclamation, "提示"
     Exit Sub
  End If
  p = 1
  m = TreeView.SelectedItem.Index
For i = 1 To TreeView.Nodes.Count '开始逐个查找和节点收起
    TreeView.Nodes(i).Parent.Expanded = False '节点收起
   ' TreeView.Nodes(i).ForeColor = 0& '节点变黑(用获得焦点方式来达到变红目的,变红方式可以删除)

     If i > m And p = 1 And (InStr(1, TreeView.Nodes(i).Text, UCase(stxt)) > 0 Or InStr(1, TreeView.Nodes(i).Text, LCase(stxt)) > 0) Then
         '如果子项找到了
         p = i
      
    End If
Next

'TreeView.Nodes(p).ForeColor = vbRed '被查到的节点的变成红色,(用获得焦点方式来达到变红目的,变红方式可以删除)
        i = p '记录当前变红节点的index号
         While i > 1 '循环展开,直到第一个节点
              TreeView.Nodes(i).Parent.Expanded = True '上级节点展开
              i = TreeView.Nodes(i).Parent.Index '上级节点的Index
         Wend
       TreeView.SetFocus
       TreeView.Nodes(p).Selected = True '选中的节点
       Call Treeview_NodeClick(TreeView.Nodes(p)) '调用nodeclick事件的程序



  If i = TreeView.Nodes.Count Then
  MsgBox ("已搜索到最后")
  End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-9 17:21 | 显示全部楼层
非常感谢RENCO的耐心教导, 程序已经正常运行, 我还在慢慢消化其中的逻辑. 谢谢

TA的精华主题

TA的得分主题

发表于 2012-10-22 22:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个例子正好是我需要的。哈哈,学习新知识呀!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-7 08:23 , Processed in 0.020413 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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