密钥是否存在于VBA Userform TreeView中

时间:2013-08-23 19:57:12

标签: vba treeview userform

在VBA树视图用户窗体中,如何通过密钥或其他任何方式判断节点是否存在?

有没有一种好方法可以查看节点是否存在?

Public Sub Test
  Dim thisNode as New Node

  ' Determine if node exists
  If tvNodeExample.Nodes.Item("TestKey") is Nothing Then
    msgbox "Node Does Not Exist"
  Else
    Set thisNode = tvNodeExample.Nodes.Item("TestKey")
  End If
End Sub

1 个答案:

答案 0 :(得分:3)

经过多次搜索,我发现对我来说是一个可以接受的答案,虽然我不喜欢这个实现。根据键设置节点对象时,如果该节点不存在,则会收到错误号35601.因此,以下代码可以正常工作。

Public Sub Test()
  Dim thisNode as Node

  ' Determine if node exists

  ' Disable error handling temporairily
  On Error Resume Next
  Set thisNode = tvNodeExample.Nodes.Item("testKey")
  If Err.Number = 35601 Then

    On Error Goto ErrorHandler      

    ' Create the node
    Set thisNode = tvNodeExample.Add(, tvwFirst, "testKey", "test Description")
  End If

  On Error Goto ErrorHandler

  ' Do Stuff      

End Sub