Quote Originally Posted by augustllee View Post
To ensure that only generic references are used, we can leverage the fact that bookmarks have a specific structure. By checking if the heading's name starts with "_Ref", we can determine if it's a generic reference.

VB.Net
Sub InsertCrossReferences()
    Dim Heading As Heading
    
    For Each Heading In ActiveDocument.Headings
        Selection.InsertCrossReference ReferenceType:="Heading", _
            ReferenceKind:=wdNumberNoContext, ReferenceItem:=Heading.Name, _
            InsertAsHyperlink:=True, IncludePosition:=False
        Selection.TypeText Text:=vbTab
        
        ' Check if the heading name is a generic reference
        If Left(Heading.Name, 4) <> "_Ref" Then
            ' If not, use generic reference
            Selection.InsertCrossReference ReferenceType:="Heading", _
                ReferenceKind:=wdContentText, ReferenceItem:=Heading.Name, _
                InsertAsHyperlink:=True, IncludePosition:=False
        Else
            ' If it's a generic reference, use the existing cross-reference
            Selection.InsertCrossReference ReferenceType:="Heading", _
                ReferenceKind:=wdContentText, ReferenceItem:=Heading.Name, _
                InsertAsHyperlink:=True, IncludePosition:=False
        End If
    Next Heading
End Sub
Oh thank you for your reply, I have fixed it thank you very much.