|
本帖最后由 lion3005 于 2012-1-18 17:17 编辑
如附件,打开文件--插入--名称--定义,就会看到很多的定义名称。我曾经用以下的程序删除定义名称,当时是删除了大部分,但是剩余下来的还有很多(附件就是剩余下来的顽固派!)。请问各位大侠,如何才能将剩余的定义名称删除(由于手头上这种文件比较多,所以想用VBA批量删除的方法,手工删除实在太痛苦了(而且录制宏无效))
附上手工删除的方法:用下面的程序删除后,点工具--选项--常规--将R1C1勾上--出现“名称冲突”的对话框--乱输入一堆字母(好像是一个一个名称的输,而且名称不能重复,具体原因不明)--再用用下面的程序删除--痛苦的OVER了!
Sub del_name()
On Error Resume Next
For Each na In ActiveWorkbook.Names
na.Delete
Next
End Sub
----------------------------------------------------------------------------------------------------
帖子讨论了两三天,貌似解决了(虽然没有达到完全自动的效果,但工作量已经大大减少),
强烈感谢各位跟帖的大侠们!!
总结一下:
第1步、先用以下代码删除能删除的定义名称
Sub del_name()
On Error Resume Next
For Each na In ActiveWorkbook.Names
na.Visible = True
na.Delete
Next
End Sub
第2步、手工删除(excel2003与后面的版本有点区别,后面的版本直接调出名称管理器选中全部删除即可,03版本需要以下步骤):
1)ctrl+f3调出定义名称框,结合鼠标和Alt+D【左右手配合】删除不算太顽固的定义名称。
2)工具--选项--常规--R1C1引用样式,在弹出的名称冲突框顺便输入一些不重复的字(如果重复或者不合法,会提示重输),一直输到弹出框消失为止。
3)重复第1步(如有需要之后将2)的R1C1引用样式调回来)
第3步、保存--结束。
还有一种比较笨的方法(针对03版的),但适用于超多顽固定义名称的工作表:
另外新建一个工作簿,按每个sheet选择左上角那个格子(我不知道叫什么,不是R1C1引用样式的情况下,在A的左边,1的上面的那个,点击后就选择全SHEET),复制全SHEET到新的工作簿中,并将SHEET的名字更改为原工作簿的相应SHEET的名字。
这种方法就不存在原来的定义名称的事情,根据实际情况使用即可。
补充内容 (2016-9-7 11:11):
再补充一下EXCLE 2013的方法:
上面的第1步是要的,主要是为了把隐藏的名称全部显示。除非你只想删除可见的那部分。
点工具栏的:公式→名称管理器→点第一个名称,拉垂直滚动条到底下,按shift选最后一个→删除 |
-
-
2.rar
21.17 KB, 下载次数: 109
|