我在Excel中的TreeView
内有一个UserForm
。
从TreeView
中选择节点后,ListBox
会填充数据
当双击ListBox
中的项目时,会显示一个单独的UserForm
,允许用户填写内容。
用户返回TreeView UserForm
后,我希望以前选择的Node
突出显示。
问题是UserForm
基本上会自行重置,我无法弄清楚如何选择带有VBA的Node
。
我正在讨论是否可以手动触发NodeClick
事件,因为我尝试过的其他事情都失败了。
任何提示?
答案 0 :(得分:3)
我知道这是一个古老的问题,但我自己很难找到一个体面的答案,所以我们走了。索引或密钥并非始终可用。在创建时,我将节点的完整路径放在node.tag中。双击我回忆标签值,稍后我在树视图节点集合中搜索标签。要多吗?效率不高?也许,但它的作品每次都喜欢魅力,我可以根据树视图的目的在标签中使用我自己的标识符。查找代码:
Sub MyTreeview_FindNode(strKey As String)
Dim myNode As Node
For Each myNode In Me.Treeview.Nodes
If myNode.Tag = strKey Then
myNode.Selected = True
myNode.EnsureVisible
End If
Next
End Sub
答案 1 :(得分:2)
在我的Excel作品中:
TreeView1.Nodes(key).Selected = True
答案 2 :(得分:1)
您有几种选择。首先,当TreeView UserForm显示第二个UserForm时,您需要:
答案 3 :(得分:0)
试试这个: objTreeview.Object.Nodes(KEY_NAME).Selected = TRUE
KEY_NAME是您用于创建节点的键(字符串)
答案 4 :(得分:0)
Set xTree = Me!tv_bom.Object
xTree.Nodes.Item(Index).Selected = True