There are global names and local names. Maybe parts of this will help.
Sub RemoveLocalNames()
Dim n As Name
For Each n In ThisWorkbook.Names
If InStr(1, n.Name, "!") > 1 Then
'n.Delete
Debug.Print "Sheet Name:", n.Name, n.RefersTo, n.RefersToLocal
Else: Debug.Print "Workbook Name:", n.Name, n.RefersTo, n.RefersToLocal
End If
Next n
End Sub
Sub CellInWorkbook()
Dim namTemp As Name
For Each namTemp In ActiveWorkbook.Names
If Union(namTemp.RefersToRange, Range("A1")).Address = Range("A1").Address Then
MsgBox namTemp.Name
End If
Next
End Sub
Sub DelAllNames() 'Both Local and Global
Dim n As Name
For Each n In ThisWorkbook.Names
n.Delete
If InStr(1, n.Name, "!") > 1 Then
n.Delete
'Debug.Print "Sheet Name:", n.Name, n.RefersTo, n.RefersToLocal
'Else: Debug.Print "Workbook Name:", n.Name, n.RefersTo, n.RefersToLocal
End If
Next n
End Sub