Excel 中显示错误消息:“保存时检测到错误...”
问题
请考虑以下应用场景:您正在处理某项目以自动执行 Microsoft Office。因此,您已打开 Microsoft Visual Basic for Applications 编辑器。某 Excel 工作表也已打开,其中包含 think-cell Excel 数据链接(请参阅 21. Excel 数据链接)。
您删除 think-cell 的 Excel 数据链接所在的该 Excel 工作表。Excel 可能会显示错误消息:“需要对象”。
若您尝试保存 Excel 文件,Excel 会显示错误消息:
“保存 [文件名] 时检测到错误。Microsoft Excel 可以通过删除或修复某些功能来保存该文件。若要在新文件中进行修复,请单击“继续”。若要取消保存文件,请单击“取消”。
单击继续时,修复会失败。
Excel 2007 或 2010:若不尝试保存文件,而是改为尝试插入新 Excel 工作表,Excel 会发生故障。
原因
问题的原因在于 Excel 中的 Bug。我们已经向 Microsoft 报告。若贵公司有 Microsoft Office 支持合同,而且您希望联系 Microsoft 请求修复,可以参阅 Microsoft 案例编号 114072911657591。该错误在不使用 think-cell 的情况下也会重现。
在不使用 think-cell 的情况下重现
请执行以下步骤:
- 启动 Excel 打开新的空文件。
- 在第一个工作表 Sheet1 的单元格 A1 和 A2 中输入 100。
- 选择 Sheet1 上的单元格 A1:A2,按 Ctrl + C 进行复制。
- (只有在您尝试使用 Excel 2013 或更新版本重现时:插入第二个工作表。较旧的 Excel 版本具有三个默认工作表,因此不需要执行此操作。)
- 按 Alt + F11 打开 Microsoft Visual Basic for Applications 编辑器窗口,并使其保持打开状态。
- 启动 Word 打开新的空文件。
- 在 Word 中,前往主页 → 粘贴 → 选择性粘贴 → 粘贴链接:Microsoft Excel 工作表对象,然后单击确定。
- 在 Excel 中,右键单击 Sheet1 选项卡,然后单击删除。
-
尝试保存 Excel 文件。Excel 显示以下错误消息:
“保存 [文件名] 时检测到错误。Microsoft Excel 可以通过删除或修复某些功能来保存该文件。若要在新文件中进行修复,请单击“继续”。若要取消保存文件,请单击“取消”。单击继续时,修复会失败。
Excel 2007 或 2010:若不尝试保存文件,而是改为尝试插入新 Excel 工作表,Excel 会发生故障。
解决方案
若您遇到此错误,可以将数据保存在新的 Excel 文档中,或放弃更改,并修复原始文档:
将数据保存在新的 Excel 文档中
若要保存您对文档进行的更改,请将您更改的工作表复制到新的 Excel 文档并保存。
修复 Excel 文档,以避免将来出现该错误
您可以删除文档中的任何 Visual Basic for Applications (VBA) 项目,以修复 Excel 文档。但是,只在 Visual Basic 编辑器中将其删除并不够。请使用以下程序:
- 创建文档的备份。
- 下载并运行免费的结构化存储查看器。
- 在结构化存储查看器中打开您的文档。
- 在您的文档树状视图中,选择 _VBA_PROJECT_CUR,然后按 Del 将其删除。
- 确认删除并关闭结构化存储查看器。
- 在 Excel 中打开文档。
- 会显示对话框 Microsoft Visual Basic → 未找到文件。点击确定。
- 还会显示另一个对话框修复,其中列出了丢失的 Visual Basic 项目。点击关闭。
- 保存您的文档。
现在,您应该可以删除具有 think-cell 链接的工作表,然后保存文档。