Excel VBA检测用户是否在树视图中选择父节点或子节点

问题描述 投票:0回答:1

我有一个包含树视图的userform和2个框架,每个框架有几个文本框,标签等。

如果用户选择某些父母或他们的孩子,我想隐藏其中一个用户形式框架。 使用下面的代码,我可以隐藏框架,如果用户选择一个孩子,但如果用户选择一个父,我得到一个运行时错误91“对象变量或未设置块变量”

将Node.Parent更改为Node.Key会在选择父级时隐藏帧,但在选择子级时则不会。如果选择了哪一个,我该如何隐藏框架?欢迎任何指导。

If Node.Parent = "North" Or Node.Parent = "South" Or Node.Parent = "East” _
or Node.Parent = "West" Then
UserForm1.Frame1.Visible = False
excel-vba vba excel
1个回答
0
投票
If Userform1.TreeView1.Nodes(<name of node>).Parent Is Nothing Then
    <this is a parent node>
Else
    <this is a child node>
End If

您可以在“mousedown”事件期间使用hittest获取所选节点的名称。按钮,shift,x和y由事件自动填充

Private Sub TreeView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)

        'hittest is looking at twips, x,y=pixels. 15 twips to a pixel (*15) to make it 
         <name of node> = TreeView1.HitTest(x * 15, y * 15)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.