VBA删除命名范围。 获取#NAME?

我真的希望有人能帮助我。 我试图做一个脚本,将删除现有的命名范围,然后定义新的基于我的工作表中的列表。 剧本目前看起来像这样。

Sub NamingRanges() Worksheets("Input").Activate Dim nm As Name For Each nm In ThisWorkbook.Names nm.Delete Next Range("C6:Q9999").Select Selection.CreateNames Top:=False, Left:=True, Bottom:=False, Right:=False End Sub 

当运行脚本时,它给我一个错误1004抱怨名称语法。 我试图在nm.delete行之前放一个“MsgBox nm”,它返回=#NAME? 在对话框中。 即使没有名字经理的名字。 我真的希望有人能够帮助我。

将其添加到删除行

 If InStr(1, nm.RefersTo, "=#NAME?") <1 Then nm.Delete