这是向看到此问题的任何其他人索取信息的请求,邀请您提供有关变通方法、恢复策略和预防措施的建议。
当您在 Excel 中单击“保存”时,您是否看过保存 Excel 工作簿文件的文件夹?
在保存过程中,Excel 会创建一个临时文件,其名称为任意 8 个字符,并且没有“.xls”或“.tmp”扩展名。一旦对这个临时文件的写操作完成,原始文件就被删除并且这个临时文件被重命名为原始文件名。
有时这个过程会出错。具体来说:Excel 应用程序窗口停止响应用户输入,但屏幕仍会重新绘制,并且在应用程序窗口中可以看到“正在保存 [文件名]:”进度条。
临时文件增长,增长......并且增长。
在 2 GB 后不久 - 或者如果磁盘空间不足 - 临时文件被删除,Excel 返回“文档未保存”错误。如果幸运的话,这将需要 10-15 分钟,否则需要几个小时。如果您没有包含更改的文件的早期副本(或自动保存文件夹中的某些内容),那么您完全不走运:自上次成功保存以来您所做的所有工作都将丢失。
没有任何效果:再次保存会重复该过程,“另存为”到另一种文件格式(例如:网页)会在延迟后重复该过程。
我在四家不同的公司看到过这个问题;其中之一(纽约、伦敦、苏黎世和新加坡的一家大型金融机构)使用非常庞大和复杂的电子表格,其中包含大量 VBA,大多数 Excel 开发人员都看到了这个问题。
微软对此无话可说。仔细阅读微软关于“文档未保存”的知识库文章表明,雷德蒙德的某个人已经看到了问题的每个单独部分,但无法将这些部分放在一起承认这个特定问题的知识库文章中。
这是我所知道的一切:
这里有一些我不知道的事情:
我不确定 Excel 是否在我的情况下保存临时文件。否则我的经验与问题中列出的第 1、2、3、4 和 5 点相对应。我正在使用 Office 11.0 (2003)。
为了澄清起见,第二点 1 到 5 与第一点相同。我还没有愤怒的管理员(还没有!)。
一种解决方法是将文件修改为只读,然后每当提示保存时,您都必须使用不同的文件名保存,然后覆盖旧文件(并使新文件再次变为只读)。它将使您不必导出所有模块。
很麻烦,但我认为比导出每个模块并重新导入它们要少一些。
我开始认为,如果您使用相当复杂的软件足够长的时间,您最终会发现一个记录得很差(或根本没有)且无法修复的错误。