如何比较vba word中两个FormFields的引用相等性?

如何比较vba word中两个FormFields的引用相等性?,vba,ms-word,Vba,Ms Word,我有一个ListView,它表示word文档中的所有FormFields,就像目录一样 Function addFields(field As formField) Set oApp = GetObject(, "Word.Application") oApp.Visible = True Set oDoc = oApp.ActiveDocument Dim dFormField As formField Dim i As Integer For

我有一个ListView,它表示word文档中的所有FormFields,就像目录一样

Function addFields(field As formField)
    Set oApp = GetObject(, "Word.Application")
    oApp.Visible = True
    Set oDoc = oApp.ActiveDocument
    Dim dFormField As formField
    Dim i As Integer
    For i = 1 To oDoc.FormFields().Count
        Set dFormField = oDoc.FormFields(i)
        If (dFormField Is field) Then
            Set Item = NavigatorForm.LBFields.ListItems.Add(i, , i)
            Set Item.tag = dFormField
            Exit For
        End If
    Next
End Function
如何比较要添加的FormField是否位于对象模型中的某个索引处,并将其插入列表中的正确位置

            If (dFormField Is field) Then
是在vba中比较对象引用相等性的方式,但DOM似乎每次都在创建一个新的formfield对象。因此,要么我犯了一个错误,要么我需要一些其他方法来确定它们是否是相同的formfield片段


我会使用自动生成的书签文本,但由于复制和粘贴不会更新书签名称,因此不能指望它没有空文本或副本。

这是我的黑客解决方案。我将奖励一个更好的答案

Function addFields(field As formField)
    Dim orig As String
    Dim detect As String
    orig = field.Result
    field.Result = Rnd(100000)
    Set oApp = GetObject(, "Word.Application")
    oApp.Visible = True
    Set oDoc = oApp.ActiveDocument
    Dim dFormField As formField
    Dim i As Integer
    For i = 1 To oDoc.FormFields().Count
        Set dFormField = oDoc.FormFields(i)
        If (dFormField.Result = field.Result) Then
            field.Result = orig
            Set Item = NavigatorForm.LBFields.ListItems.Add(i, , i)
            Set Item.tag = dFormField
            Exit For
        End If
    Next
End Function