我在Excel的UserForm中有一个TreeView。从TreeView中选择节点时,将使用数据填充ListBox。
当双击ListBox中的项目时,将显示一个单独的UserForm,允许用户执行以下操作。
一旦用户返回到TreeView UserForm,我希望突出显示先前选择的Node。
问题是UserForm基本上会自动重置,我不知道如何使用VBA选择Node。
我正在考虑是否可以手动触发NodeClick事件,因为我尝试过的其他方法都失败了。
有什么建议吗?
发布于 2013-06-26 22:18:13
我知道这是一个古老的问题,但我自己已经很难找到一个像样的答案了,所以我们开始吧。索引或键并不总是可用的。在create上,我将节点的完整路径放在node.tag中。双击I recall the tag value,稍后在treeview节点集合中搜索该标记。太多了?效率不高?也许吧,但它的作品每次都很有魅力,我可以根据treeview的用途在标签中使用我自己的标识符。查找代码:
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 发布于 2016-11-07 21:52:23
在我的Excel作品中:
TreeView1.Nodes(key).Selected = True发布于 2009-01-20 00:23:38
您有几个选项。首先,当TreeView UserForm显示第二个UserForm时,您需要:
https://stackoverflow.com/questions/459589
复制相似问题