|
本帖最后由 songxl0000 于 2011-11-14 16:08 编辑
这个文件的工作表里面有大量名称,在excelhome论坛请教了一下,用下面2段代码进行了批量删除,但是按住Ctrl拖动复制该工作表仍然提示有8个名称没被删除!!是不是这8个是隐藏名称的原因?请教各位高手指导一下是什么原因,最好能写一段全部删除的代码。
代码一:
Sub del_Name()
On Error Resume Next
Do
For Each n In ThisWorkbook.Names
n.Delete
Next
Loop Until ThisWorkbook.Names.Count < 18
End Sub
代码二:
Sub DelName()
On Error Resume Next
For Each Name In ThisWorkbook.Names
Name.Delete
Next
End Sub
[原创]EXCEL秘密二则:删除非法定义名称和减肥
如何删除非法定义名称:有的文件由于删除或使用不同语言等等原因,使得里面含有的非法定义名称,有时因为表中还有很多公式等原因,重做一个比较麻烦,但又不能使用普通CTRL+F3再删除的方法,要命的是即使用VBA也不能删除,如附件,那怎么办?我们可以在菜单/工具/选项/常规里改变"R1C1 引用式样后按确定,EXCEL会提示你名称冲突,要求输入新的名称,其实冲突的名称就是那些非法的名称,你随便给它们取些名,以后就可以用CTRL+F3或VBA来删除了,需要注意的是,改变"R1C1 引用式样需要再进行一次,把另外类型的非法名称也找出来改名.有效减肥方法之一:论坛上已经有了一些减肥的方法,但这些方法可能对有些文件不适用,比如上面的那个文件, 其实还有一种方法,就是将XLS文件另存为后缀名是xml格式的文件,然后关掉EXCEL, 再打开那个xml文件,另存为xls 格式文件,文件的尺寸就能变小了.我回复过这样的问题,现在专门发贴,方便查找. |
解决方法:
这是 willin2000 的方法,我照着操作,可以删除1楼附件里所有名称。我也是学习的。为什么,请见上面的说明。
1)
Sub DelName2()
Dim x
On Error Resume Next
For Each x In ThisWorkbook.Names
x.Delete
Next
Debug.Print ThisWorkbook.Names.Count
End Sub
运行后,有17个删不掉
2)如果“在菜单/工具/选项/常规里改变"R1C1 引用式样后按确定,EXCEL会提示你名称冲突”没提示的话,再取消钩,就有提示了。
3)依次手工修改名称16次,把其中看得到那个,手工删除
4)再运行1),就可以删除这变了名的16个了,最后名称总数为0。
成本表7.rar
(18.38 KB, 下载次数: 7)
|
|