表哥表妹在使用Excel的时候 经常莫名其妙文档的容量会变得很大 而表格中的内容其实并不多 远不可能达到文件容量的大小 每次打开或保存文件时 都会很慢 之前收到一个表妹的求助,感觉她的文件比较有代表意义,于是把过程整理出来,给大家参考~ 表妹的文件里面只有一个工作表 是一个815行9列的表格 有文字和公式 没有其他内容了 这个很普通的表格,容量达到了55M之巨! 打开的时候都很慢 开始第一步排除 首先发现上下和左右的滚动条 有很多的虚位 也就是说 在表格的右边和下边还有很多空白行和列 可以判断这些位置可能还有些内容。 但即使有内容也是不需要的了 于是选中空白的整行和整列进行删除 But,居然有一个提示: 确定后的结果更让人奇怪: 虽然用的笔记本不是最高配置 但是处理文档是绝对没问题的 上千行的删除以前也干过且毫无压力 第一回合受到了些许挫折 再来 既然这样提示 说明这些空白行列中的东西有古怪 有可能作者不小心留下了些什么 这些有可能是条件格式、数据有效性 也有可能有文字、公式 虽然这些都不影响行列的删除 但是还是一步步来检查。 按F5键打开定位功能 点击其中的定位条件进入定位界面 选择批注并确定 这个操作是检查有没有批注 结果提示说没发现: 再重复定位操作 分别选刚才定位窗口里面的各项内容: 对象、条件格式、数据有效性。。。 定位出下图中肉眼看不到的很多形状 后来问表妹才知道 在做表格的时候 还做过复制网页文字的操作 复制网页内容 会把里面的一些控件带进来 甚至是不可见的 这些在表格里面表现为形状 这些太多了的话当然也会影响文件容量的 所以有经验的会先把文字粘贴到记事本 然后再从记事本复制粘贴到Excel 让记事本过滤非文字的内容。 上述所有的古怪东西经过刚才的定位选中 都直接按delete键删除 所有都完成后 保存文档 查看文件容量还有28M,有收货! 继续~ 检查另外一个定位也找不到的东西: 定义名称 打开功能区的公式、名称管理器功能 发现了很多古怪的内容 这些内容显然会造成文件虚胖的 这些已经难以考究是怎么来的了 反正是不需要的 于是在窗口中选中第一条 把滚动条拖到最后 按住Shift键后点最后一条 这样选中全部的定义名称后 点击窗口中的删除按钮 关闭窗口后保存文件 再检查文件大小 减小到了15.4M 一鼓作气 再继续~ 既然这个名称管理器中莫名出现了东西 那么还有一种可能 就是定义了名称后 有可能被隐藏了起来 在刚才的窗口中是看不到的 这在人工做定义名称 或者对含有定义名称的表格复制 甚至在宏病毒干扰下都有可能出现 于是这次要使用一个相对高级的干货了——VBA! 按Alt+F11 打开VBA编辑窗口 双击对应的工作表 然后在右侧的窗口中输入代码: 这个代码的作用 是把文件中隐藏的名称现形 按F5键运行这个代码 然后重新打开功能区的公式、名称管理器 又发现一个古怪东西: 事后表妹 总结得知这个叫作FilterDatabase的名称 是由于表格中的数据是从外部导入的 Excel会自动生成一个数据区域的名称 虽然后来这些数据有删除 但是这个名称还会保留 让Excel认为这个数据区域还在“使用中” 现在发现的名称 区域范围是$A$1:$XEW$65043 所以刚才第一回合的时候不能删除空白行列 现在终于可以了 毫不犹豫删除定义名称 回到第一回合的操作 将空白行列删除 并保存文档 这下查看文件属性中的容量: 740K! 这个才是一个不到一千行的表格可以接受的大小 把刚才现形用的代码删除,保存文档 胜利收工~ 下面是刚才提到的VBA代码: Sub showname() Dim sh As Name For Each sh In ThisWorkbook.Names sh.Visible = True Next sh End Sub 觉得好用,不要忘分享、关注哦~ 笔芯~ |
|