减小Excel的文件大小

时间:2010-06-09 05:48:56

标签: excel excel-vba vba

我正在使用应用程序,并为用户提供一个菜单,以便在该Excel应用程序(Excel工作簿)中添加新的工作表。

一旦用户点击“确定”按钮,我就会添加工作表,并且我正在使用模板添加此工作表(模板中包含大量格式和公式)

如果保存工作簿,可以说在添加工作表后文件大小为10 MB。然后我关闭Excel应用程序并重新打开它并保存文件,然后文件大小减少到8 MB。

任何人都可以告诉我这可能是什么原因吗?

4 个答案:

答案 0 :(得分:8)

Unused formatting是Excel中“文件膨胀”的最常见原因:紧接着是工作表上的“使用范围”比您想象的要大 - Excel维护有关工作表中每个单元格的元数据A1是您编辑过的最低,最远的单元格,占用了大量内存。

但是新工作表中的“使用范围”将作为单元格A1保存到包含数据的最后一个单元格中。

提示:看一下工作表滚动条中的滑块,纵向和横向:它们是粗块的灰色块,看起来好像只能滚动50行或列吗?或者,如果鼠标靠近它们,它们是否会滚动数百行?当滑块移动的距离等于它自己的长度时,它会在可用页面空间中完成一个“向下翻页”(或页面侧向);空间或页面集越大(或Excel中使用的范围),它们就越小。

我建议去除气胀(必须有一个更好的词!放松?贬低?变形?)你的工作簿。以前有很多第三方工具,但Excel 2003以后有一个内置的工作簿重建程序:只需点击“保存”和“另存为...”一个网页。然后退出Excel,重新打开Excel,并使用“打开”打开html工作簿(尽管是HTML文件,它将有一个Excel图标),并再次“另存为...”xls文件。再次关闭Excel,并查看文件大小。

答案 1 :(得分:2)

在最后一个单元格用于重置最后一个单元格([Ctrl] + [End])之后,您可以清除所有列和行。 您还可以启用图像压缩。

我开发了一个带有自动安装的AddIns(法语),以包含在上下文菜单中的3个新按钮:

  1. 优化
  2. 优化并保存
  3. 切换案例
  4. enter image description here

    这是基于KB of Microsoft office 2003的个人改进:

    1. 添加图片压缩
    2. 修复列的错误
    3. 专注于excel 2007 - 2010 - ...
    4. 解决方案>您可以下载 my * .xla文件here

答案 2 :(得分:2)

Nile是正确的,“UsedRange”没有正确地重置,导致很多膨胀。您可以使用1行VBA代码非常简单地重置它。

ActiveSheet.UsedRange

在Excel中打开“开发人员”选项卡,插入模块,添加以下宏,然后运行它

Public Sub ResetUsedRange()
    ActiveSheet.UsedRange
End Sub

您还可以将此宏绑定到Excel键盘快捷键,以便使用Application.OnKey事件更快地访问

答案 3 :(得分:1)

您可以使用另存为启用宏的文件将其降低到最佳内存容量。我用它来减小大约10 MB到4.5 MB的大小。它帮助我解决了我的问题。