我正在使用excel应用程序,并为用户提供一个菜单,以便在该Excel应用程序(Excel工作簿)中添加新的工作表。
一旦用户点击“确定”按钮,我就会添加工作表,并且我正在使用模板添加此工作表(模板中包含大量格式和公式)
如果保存工作簿,可以说在添加工作表后文件大小为10 MB。然后我关闭Excel应用程序并重新打开它并保存文件,然后文件大小减少到8 MB。
任何人都可以告诉我这可能是什么原因吗?
答案 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个新按钮:
这是基于KB of Microsoft office 2003的个人改进:
解决方案>您可以下载 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的大小。它帮助我解决了我的问题。