问题在文件,不在电脑
十有八九,卡的是Excel其实是卡的工作簿。被拖到最后一行之下很远处的格式、从别的文件复制粘贴带进来的成千上万种样式、整列整列的条件格式——这些都装在.xlsx文件里,你的每一次操作都会触发重绘或重算。
两分钟诊断法:打开文件,按Ctrl+End,看光标落在哪里。如果它跳到数据下方几千行之外,说明已用区域已经膨胀,Excel每次重算都在拖死重。文件大小并不靠谱,光标才说实话。
按出现频率排序的惯犯
我们打开过的每一个臃肿工作簿,至少带有下面问题中的两个。光看文件大小一个都发现不了,而它们会在数月的小修小补中层层叠加。
- 膨胀的已用区域——格式或数据曾经碰到过真实表格下方很远的行
- 单元格样式堆积——成千上万的自定义样式,通常是从其他工作簿复制粘贴带进来的
- 整列的条件格式——每次编辑都要在百万个单元格上重新求值规则
- NOW、INDIRECT、OFFSET这类易失函数——整条依赖链在每次改动时全部重算
- 来自老工具栏、PDF打印机和BI工具的COM加载项——每次打开和保存都要挂钩
- 保存下来的自动筛选或数据透视表缓存——把源数据的副本留在文件里
能长期见效的修复
删除数据与膨胀已用区域之间的行列,保存后再按一次Ctrl+End——对老文件来说,仅这一步就能把打开时间砍半。把条件格式重建为作用于命名表格的规则,跑一遍样式清理宏,再到“文件 > 选项 > 加载项”里禁用那些说不出名字的COM加载项。
对持续膨胀的工作簿,结构性改造胜过打扫:把原始数据挪进Power Query或数据模型,工作表只留展示层。另外好好检查一下继承来的个人宏工作簿(PERSONAL)——其中一半还在对早已不存在的文件跑代码。
常见问题与解答
Excel为什么会随着时间变慢?
是工作簿在攒行李:膨胀的已用区域、成堆的样式、整列的条件格式、老旧加载项。Excel本身不会退化,退化的是文件。
怎么修复一个很慢的Excel文件?
按Ctrl+End检查已用区域,删掉数据之外的死行死列,清理样式和整列的条件格式,并禁用不用的COM加载项。
继续阅读
联系我们: [email protected]