Excel数据很少文件却很大,问题出在哪里呢?两种方法轻松解决

池语蝶言 2020-05-19 12:35:28

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

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

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

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

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

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

第一种方法

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

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

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

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

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

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

第二种方法

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

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

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

代码区域:

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

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

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

6 阅读:2563
评论列表
  • 2020-05-20 09:57

    for每一个sheets,再for每个sheets下面的按钮,按钮删除,连这么简单的宏都写不出还好意思用表格。

    池语蝶言 回复:
    谢谢指正。
  • 2020-05-21 10:18

    shapes都用for each了,worksheets为啥不用for each?

  • 2020-05-20 04:56

    新建一个,把表中所有内容全选,复制到txt,再全选复制到新建的表中就可以了,缺点是如果有关联的计算公式没有了

    池语蝶言 回复:
    感谢您的支持。
  • 2020-05-19 23:38

    谁会那么无聊搞出那么多空对象,反正没见过这种的

  • 2020-05-21 12:42

    用自定义快速访问工具栏加一个 选择对象 按钮,通过该按钮可以轻松选择多个对象,从而删除

    池语蝶言 回复:
    厉害了亲
  • 2020-05-20 08:08

    有时候直接复制网页的数据就会出现这种情况,之前一个表格到后面卡的不行,才发现十几M

    池语蝶言 回复:
    感谢您的支持。
  • 2020-05-20 00:12

    好文,可就是麻烦

    池语蝶言 回复:
    感谢您的支持。

池语蝶言

简介:知识改变命运,科技成就未来。