2

在 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
4

1 回答 1

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
于 2013-08-26T13:33:04.537 回答