订阅者John Hersey创建了一个包含很多信息的工作表。在A列中,他放置了65534个单词(行1至65534),然后在B列至Z列中,将公式放在所有这些单词的旁边。当他保存工作簿并尝试重新打开它时,出现了“内存不足”错误。由于工作簿仅占用磁盘84MB,而他的系统中有512MB,因此错误消息似乎令人困惑。

在某些方面,将磁盘文件大小与RAM空间进行比较就像将苹果与橙子进行比较。 Excel不会将工作簿存储为“内存转储”。相反,它将压缩内存中的数据,以便磁盘文件更易于管理。因此,84MB文件一旦加载到内存中,必然会占用更多空间。

但是,系统中的内存量可能不是问题。

不同版本的Excel对工作簿中可以使用的公式数量设置了不同的限制,这很可能是您遇到的问题。 (但是,奇怪的是,您能够创建工作表,使用工作表,保存工作表,然后再不加载它。)

Excel 95、97和2000正式限制为用于工作簿的64MB公式内存(堆空间)。 Excel 2002将限制提高到128MB,而Excel 2003进一步将其提高到1GB。由于Doug使用的是Excel 2000,因此从理论上讲,他可以在使用更高版本的Excel的系统上打开工作簿。

如果那行不通,或者不可能,那么还有其他尝试。首先,尝试在没有任何加载项或隐藏工作簿的情况下打开Excel。这些会占用内存,如果没有它们就会开始,从而为mondo工作簿留出更多空间。从“开始”菜单中选择“运行”以显示“运行”对话框。在“打开”框中,输入以下内容:

"C:\Program Files\Microsoft Office\Office\Excel.exe" /Automation

引号是强制性的,您可能必须更改路径以反映系统上Excel的安装位置。启动Excel后,关闭自动计算(“工具” |“选项” |“计算”选项卡),然后尝试打开文件。

如果可以打开文件,请删除大多数计算。复制计算结果,然后使用Edit |特殊粘贴|将结果粘贴到公式顶部的值。普通结果(尤其是数字结果)占用的空间比公式少得多。如果重新保存文件(使用另存为),则应注意,生成的磁盘文件比现有工作簿文件的84MB小得多。

如果无法打开文件,则可以使用此知识库文章中概述的一些针对损坏文件的技术来读取值:

https://support.office.com/en-us/article/Repair-a-corrupted-workbook-153A45F4-6CAB-44B1-93CA-801DDCD4EA53

使用这些恢复方法将使您失去公式,但可以获取它们的值。您还将在此网页上找到有关Excel和内存相关问题的精彩讨论:

http://www.decisionmodels.com/memlimitsc.htm

作为附带说明,如果要确定Excel用于特定工作簿的内存量,请在任何单元格中使用以下公式:

=INFO("memused")

该函数以字节为单位返回已使用的内存。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2545)适用于Microsoft Excel 97、2000、2002和2003。