【发布时间】:2016-02-11 02:29:12
【问题描述】:
我想通过 VBA 删除当前活动工作表上的所有超链接。
为此,我正在使用ActiveSheet.Hyperlinks.Delete 命令,它工作正常,几乎不需要任何时间...
所有这些直到我同时打开两个包含超链接的工作簿。在这种情况下,非常相同的命令需要更多时间(分钟)才能完成。它完成了它的工作,只从活动表中删除超链接,但时间更长。似乎不知何故,其他带有超链接的工作表正在减慢速度。
我可以同时打开多个工作簿,但它们不能有任何超链接才能使宏快速工作。
有人可以帮我克服这个问题吗?
实际上,我经常需要同时打开两个超链接工作簿并运行删除超链接的宏。
【问题讨论】:
-
如果我尝试重现此行为,了解 Excel 的版本以及您是否更改了有关超链接或校对 ► 自动更正 ► 自动套用格式的任何选项(Alt+F、T)会有所帮助。
-
Excel 版本是 2010 标准版,我不知道对超链接或自动格式设置所做的任何更改。但是,这些工作表中还有许多其他宏。但是我已经尝试过调试,所有其他命令都可以正常工作,除了那个在继续之前会卡住几分钟的确切命令,所以我相信其他宏可能不会妨碍它。
-
我尝试了一些自己的选项,但我删除 ActiveSheet 上的 7500 个超链接(打开两个满是超链接的工作簿)花费的最长时间是 00:00:00.426,请使用 @ 检查987654322@和
Application.Calculation = xlCalculationManual;甚至可能是Application.ScreenUpdating = False。记得重新开启一切。 -
好吧,我忘了禁用计算和 ScreenUpdating,但它没有任何区别。但我发现,较慢的 Excel 具有通过 VBA(Hyperlinks.Add)以编程方式添加的超链接,而另一个使用超链接函数公式的超链接。将来我会尝试将较慢的更改为也使用我们的公式而不是 VBA,但目前我不能并且仍然想找出错误在哪里......
-
这可能听起来很傻,但尝试添加
activeworkbook.activesheet.hyperlinks.delete以获得更直接的参考