经常和Excel打交道的小伙伴可能会有这样的困惑,一个Excel工作簿中的数据明明很少,文件所占的空间却很大。
打开这种Excel工作簿后,电脑CPU占用率瞬间飙升,甚至遇见工作簿没有响应的情况出现。
遇见这样的工作簿让人窝火,稍微改动一点数据,工作簿就反应很久。一不小心造成强制退出,前面的工作就前功尽弃。是什么原因造成这种情况呢?
![f662e9314b96f1bf8f93e2aa02091be7.png](https://i-blog.csdnimg.cn/blog_migrate/361a68a736fa2a1441999fc6bb67d9cb.jpeg)
其实这种Excel工作簿中存在许多空对象,这些对象里面没有任何东西,你也看不到它,只有鼠标选中它的时候才会出现。
删掉一两个空对象只是杯水车薪,根本解决不了问题。这种Excel工作簿中往往有成千上万个空对象,所以在运行的时候会造成反应慢、卡死的情况出现。有什么办法能够解决这个问题呢?
其实解决这个问题的方法很简单,接下来介绍两种快速删除Excel工作簿中对象的方法,一个比一个简单,一个比一个速度。
- 第一种方法
素材文件是一个空白的Excel工作簿,正常情况下空白的xlsx工作簿占用空间大小为8KB左右。但素材文件占用空间为268KB。
说明这个工作簿中有很多隐藏的空对象。如何才能快速删除这些空对象呢?
![6bf85e6e6940eb724b42812f92004110.png](https://i-blog.csdnimg.cn/blog_migrate/671523aa1e68fcdccef18b72096f6e1e.jpeg)
同时按下Ctrl + G键打开定位窗口,点击定位条件按钮。在定位条件窗口中,选择对象,点击确定按钮,等待片刻就可以快速选中Excel工作簿中的所有对象。按下键盘上的Delete键就可以删除这些对象。
![5a62ae2660ae8258264097ef7cf57f99.gif](https://i-blog.csdnimg.cn/blog_migrate/39c493a0497eb2211d18bb62b52f73bf.gif)
这种方法操作简单,但如果遇见工作簿中的空对象太多时,等待的时间就非常漫长。
曾经处理过一个16M左右的工作簿,定位条件2个小时还没有检测完毕,更别提删除了。如果遇见工作簿中空对象太多时,不推荐使用这种方法。
可以使用Excel中强大的VBA来快速删除这些对象。
![c041a07c0044509efbb49251bda59eba.gif](https://i-blog.csdnimg.cn/blog_migrate/20f2a4560c3431b2328a3c28c89781e7.gif)
- 第二种方法
右键单击工作表列表区域中的任意工作表名称,选中右键菜单中的查看代码选项,打开Visual Basic编辑器。
在代码窗口中输入以下代码后,点击工具栏中的运行宏按钮(或者按下F5)。等待片刻后就可以删除Excel工作簿中的所有对象。
这种方法比定位条件的效率更高,速度更快。
![b4d6188ad38cebf18f83d04eaabe7482.gif](https://i-blog.csdnimg.cn/blog_migrate/60209a35ac009a07a7ef8514bd70e952.gif)
- 代码区域:
Sub DeleteAllObject()
For i = 1 To ActiveWorkbook.Worksheets.Count
Dim j As Object
For Each j In Sheets(1).Shapes
j.Delete
Next j
Next i
End Sub
![25a3826629236d6675995d9dbc560c81.gif](https://i-blog.csdnimg.cn/blog_migrate/28f2c83fccf07d8c2403fa288f9e34cb.gif)
今天的分享到此结束,以上两种方法能够快速删除Excel工作簿中的空对象,在执行的时候请做好工作簿的备份。检查一下工作簿中是否存在有用的对象,否则会造成这些对象被删除。
知识改变命运,科技成就未来。如果您有什么好的建议或意见,请在下方留言告诉我们,感谢您的支持。