经常和Excel打交道的小伙伴可能会有这样的困惑,一个Excel工作簿中的数据明明很少,文件所占的空间却很大。

打开这种Excel工作簿后,电脑CPU占用率瞬间飙升,甚至遇见工作簿没有响应的情况出现。

遇见这样的工作簿让人窝火,稍微改动一点数据,工作簿就反应很久。一不小心造成强制退出,前面的工作就前功尽弃。是什么原因造成这种情况呢?

其实这种Excel工作簿中存在许多空对象,这些对象里面没有任何东西,你也看不到它,只有鼠标选中它的时候才会出现。

删掉一两个空对象只是杯水车薪,根本解决不了问题。这种Excel工作簿中往往有成千上万个空对象,所以在运行的时候会造成反应慢、卡死的情况出现。有什么办法能够解决这个问题呢?

其实解决这个问题的方法很简单,接下来介绍两种快速删除Excel工作簿中对象的方法,一个比一个简单,一个比一个速度。

  • 第一种方法

素材文件是一个空白的Excel工作簿,正常情况下空白的xlsx工作簿占用空间大小为8KB左右。但素材文件占用空间为268KB。

说明这个工作簿中有很多隐藏的空对象。如何才能快速删除这些空对象呢?

同时按下Ctrl+G键打开定位窗口,点击定位条件按钮。在定位条件窗口中,选择对象,点击确定按钮,等待片刻就可以快速选中Excel工作簿中的所有对象。按下键盘上的Delete键就可以删除这些对象。

这种方法操作简单,但如果遇见工作簿中的空对象太多时,等待的时间就非常漫长。

曾经处理过一个16M左右的工作簿,定位条件2个小时还没有检测完毕,更别提删除了。如果遇见工作簿中空对象太多时,不推荐使用这种方法。

可以使用Excel中强大的VBA来快速删除这些对象。

  • 第二种方法

右键单击工作表列表区域中的任意工作表名称,选中右键菜单中的查看代码选项,打开VisualBasic编辑器。

在代码窗口中输入以下代码后,点击工具栏中的运行宏按钮(或者按下F5)。等待片刻后就可以删除Excel工作簿中的所有对象。

这种方法比定位条件的效率更高,速度更快。

  • 代码区域:

SubDeleteAllObject()

Fori=1ToActiveWorkbook.Worksheets.Count

DimjAsObject

ForEachjInSheets(1).Shapes

j.Delete

Nextj

Nexti

EndSub

今天的分享到此结束,以上两种方法能够快速删除Excel工作簿中的空对象,在执行的时候请做好工作簿的备份。检查一下工作簿中是否存在有用的对象,否则会造成这些对象被删除。

知识改变命运,科技成就未来。如果您有什么好的建议或意见,请在下方留言告诉我们,感谢您的支持。