在日常办公中,经常与 Excel 打交道的小伙伴们可能会遭遇这样的困扰:一个看似数据量寥寥无几的 Excel 工作簿,却在文件存储空间上 “大得离谱”。当打开这类工作簿时,电脑的 CPU 占用率会瞬间急剧攀升,甚至出现工作簿毫无响应的糟糕状况。面对这样的 Excel 工作簿,着实让人感到窝火。哪怕只是对数据进行一丁点细微的改动,工作簿都要 “磨蹭” 很久才做出反应。更倒霉的是,一旦不小心导致程序强制退出,之前付出的所有努力便付诸东流。那么,究竟是什么原因导致了这种情况的发生呢?
一、问题根源剖析
实际上,这类Excel工作簿中充斥着大量的空对象。这些空对象内部空空如也,在正常状态下,它们如同隐形一般,你根本无法察觉其存在。只有当鼠标精准选中它们时,才会显露出踪迹。仅仅删掉一两个空对象,对于解决问题而言,不过是 “毛毛雨”,起不到实质性作用。要知道,此类Excel工作簿中常常存在着成千上万的空对象,这便是导致其在运行过程中反应迟缓、甚至卡死的罪魁祸首。既然找到了问题根源,那又有什么行之有效的办法能够解决这一难题呢?
二、快速删除空对象的方法
方法1、利用定位条件删除
操作步骤:
以一个素材文件为例,这是一个看似空白的Excel工作簿。正常情况下,空白的xlsx工作簿占用空间大约为8KB,然而该素材文件却 “膨胀” 到了 268KB,这无疑表明其中隐藏着大量的空对象。
要快速删除这些空对象,可以同时按下 Ctr+G 键,此时会弹出定位窗口,点击窗口中的 “定位条件” 按钮。在随后出现的定位条件窗口中,选择 “对象” 选项,接着点击 “确定” 按钮。稍作等待,Excel便能快速选中工作簿中的所有对象,最后按下键盘上的Delete键,这些恼人的空对象便被一举删除。
方法局限性:
这种方法操作起来相对简单,容易上手。但它存在一个明显的弊端,那就是当工作簿中的空对象数量极为庞大时,等待的时间会变得无比漫长。曾经有人在处理一个大小约为16M的工作簿时,使用定位条件功能,足足等待了2个小时,检测过程都还未完成,更不用说删除操作了。因此,倘若遇到空对象超多的工作簿,不太建议采用这种方法。
方法2、借助 VBA 代码删除
操作步骤:右键单击工作表列表区域中的任意工作表名称,在弹出的右键菜单中选择 “查看代码” 选项,随即打开 Visual Basic 编辑器。在代码窗口中输入以下代码:
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
代码输入完毕后,点击工具栏中的运行宏按钮(或者直接按下F5键)。稍作等待,Excel工作簿中的所有对象便会被迅速删除。
方法优势:相较于定位条件的方法,利用VBA代码删除空对象的效率更高,速度更快。它能够快速遍历工作簿中的各个工作表,精准识别并删除其中的空对象,大大节省了处理时间。
在运用以上两种方法删除Excel工作簿中的空对象时,请务必提前做好工作簿的备份工作。同时,仔细检查工作簿中是否存在有用的对象,以免因误操作导致这些重要对象被一并删除,造成不必要的损失。希望通过今天的分享,大家能够轻松解决Excel工作簿因空对象过多而产生的卡顿问题,让Excel工作更加高效顺畅。
评论 (0)