Your code unlinks all fields as soon as it finds one that is not a cross-reference. To update & unlink fields other than cross-references, use code like:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim Fld As Field
For Each Fld In ActiveDocument.Fields
With Fld
If .Type <> wdFieldRef Then
.Update
.Unlink
End If
End With
Next
Application.ScreenUpdating = True
End Sub