ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lion3005

[求助] 如何用VBA批量删除定义名称?[貌似解决了]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-3-12 15:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不是,我自己在这里定义了几个进行的测试

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-12 16:07 | 显示全部楼层
原帖由 kevinchengcw 于 2010-3-12 15:08 发表
不是,我自己在这里定义了几个进行的测试


如果是自己定义的话,直接用一楼的代码就可以搞定了。

TA的精华主题

TA的得分主题

发表于 2010-3-12 16:22 | 显示全部楼层
这个问题论坛上讨论过,没有结论。偶以为:1楼表中不能删除的名称都因为名称的命名无效,如names("[マクロ97-07-29].NET表"),
其Delete方法拒不到其对象的入口,造成出错。至于如何产生错误名称,也许是各种语言的不同吧,如日文和中文,日文版的EXCEL中创建名称,到中文版的也许出现命名不符规定,但它又不会自动删除。不知楼主这些名称是怎样来的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-12 16:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 Zamyi 于 2010-3-12 16:22 发表
这个问题论坛上讨论过,没有结论。偶以为:1楼表中不能删除的名称都因为名称的命名无效,如names("[マクロ97-07-29].NET表"),
其Delete方法拒不到其对象的入口,造成出错。至于如何产生错误名称 ...


估计肯定是日语的东西。但是就不能删除掉,头痛。

我用了下面的代码,调出里面的名称的name:结果发现还有一些隐藏的名称(如附件),不知道为啥。

Sub aa()
i = 1
On Error Resume Next
For Each na In ActiveWorkbook.Names
Range("a" & i) = na.Name
na(na.Name).Delete
i = i + 1
Next
End Sub
未命名.JPG

TA的精华主题

TA的得分主题

发表于 2010-3-12 17:31 | 显示全部楼层
手动可以一次性删除的,
Ctrl+F3打开名称管理器,选中第一个,按住Shift,再选最后一个,删除。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-12 17:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 lb_bn 于 2010-3-12 17:31 发表
手动可以一次性删除的,
Ctrl+F3打开名称管理器,选中第一个,按住Shift,再选最后一个,删除。


大侠:你没用我的附件试过吧?手工删除只能删除一部分,到了最后,总会有几个超级顽固的名称存在的,而且那些隐藏的名称一直存在!

谢谢关注。。。

[ 本帖最后由 lion3005 于 2010-3-12 17:56 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-3-12 18:04 | 显示全部楼层
原帖由 lion3005 于 2010-3-12 17:53 发表


大侠:你没用我的附件试过吧?手工删除只能删除一部分,到了最后,总会有几个超级顽固的名称存在的,而且那些隐藏的名称一直存在!

谢谢关注。。。

你这个还不算玩固,执行下面后手工可以删除的:
Public Sub dd()
For Each n In ThisWorkbook.Names
  n.Visible = True
Next
End Sub

TA的精华主题

TA的得分主题

发表于 2010-3-12 18:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 16楼 lion3005 的帖子

我的2010版没有问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-12 19:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 Zamyi 于 2010-3-12 18:04 发表

你这个还不算玩固,执行下面后手工可以删除的:
Public Sub dd()
For Each n In ThisWorkbook.Names
  n.Visible = True
Next
End Sub

隐藏的东西的确出来了,但是以下的都不能手工直接删除(除非用一楼说的R1C1转换后就可以了,不过的确已经省了不少功夫了):
0Crite
0Criteria
0Extr
0Extract
0Print_A
0PRINT_AREA

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-12 19:39 | 显示全部楼层
原帖由 lb_bn 于 2010-3-12 18:23 发表
我的2010版没有问题。


刚才误会了,我用的是2003,听说2007也可以。但没试过。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-5 12:14 , Processed in 0.035542 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表