在Excel 2003中使用无效名称删除隐藏的名称定义

我正在使用这个macros:

http://support.microsoft.com/kb/119826

尝试清理我的Excel文件中的隐藏名称。 它适用于大多数隐藏的名字,但不适用于一些_123Graph名字。 我不知道这些名字来自哪里,但是当我尝试删除它们时,我得到了一个1004自动化错误。

知识库提到带空格的名字可能会导致错误。 有没有办法删除这些?

Excel 2007及以上版本可以解决这个问题…但Excel 2003的快速修复是:

转至工具菜单 – 选项 – 常规选项卡 – 检查R1C1参考样式然后点击“确定”。

随后会提示您为每个损坏的名称提供一个新名称。

…然后您可以返回并取消选中R1C1checkbox。

我使用优秀的名称pipe理器加载项 ,呃,pipe理我的工作簿中的命名范围,包括所有那些讨厌的例子,比如你给的例子,当自动过滤等自动创build的时候,通常不会被公开。

它允许通过types,位置,范围等来过滤名称,并且通常会在下周将可怕的内置对话框敲掉。

编辑:如果安装加载项是不可能的,那么在标准模块中添加下面的代码将允许您遍历工作簿中的名称并删除违规项目。

Sub deleteNamedRanges() Dim n As Name Dim a As Variant For Each n In ThisWorkbook.Names a = MsgBox("Do you want to delete the following name?:" & vbCrLf & vbCrLf & n.Name & " (" & n.RefersTo & ")", vbYesNo, "Delete ranges") If a = vbYes Then n.Delete End If Next n End Sub 

如果有很多名字,那么你应该能够修改这个以适应你的需要。