在 Excel 中修复损坏的文件

适用于
Microsoft Office Excel 2003
Microsoft Excel 2002

Microsoft Excel 通过尝试重新打开并同时修复文件,为损坏文件提供自动恢复。Excel 在修复文件时识别进行了哪些更改。如果修复失败,Excel 将再次尝试打开文件,但并不进行修复,而是提取单元格值和公式(仅保留数据)。但是,在某些情况下,Excel 不会自动进入恢复模式,因此用户有必要手动恢复文件数据。

手动修复文件

  1. 在“文件”菜单上单击“打开”。
  2. 在“打开”对话框中,选择要打开的文件,并单击“打开”按钮旁边的箭头。
  3. 单击“打开并修复”,然后选择恢复工作薄所要使用的方法。

从损坏的工作薄中恢复数据的方法

您可以使用下面的附加方法,从损坏的文件中手动恢复数据。在某些情况下,磁盘错误或网络错误可能会导致无法打开文件。在这些情况下,您应当先将文件移动到另外一个硬盘驱动器或从网络移动到本地磁盘,然后花时间去执行本文所述的恢复操作。

下列方法均可保存可能丢失的数据,因此如果一种方法失效,请尝试另一种方法。如果使用这些方法无法恢复数据,您也可以尝试第三方软件解决方案来恢复文件数据。

如果您可以在 Excel 中打开文件

显示使用“还原至保存的文档”命令

如果您正在编辑 Microsoft Excel 工作表,并且在您保存更改之前文件损坏,您可以按照以下方法恢复原始工作表:

  1. 在“文件”菜单上,单击“打开”,选择正在编辑的文件的名称。

系统显示一个带有“还原至保存过的文档?”信息的对话框

  1. 单击“确定”。您正编辑的文件将恢复成该文件的上一次保存版本。

显示以 SYLK 格式保存文件

以 SYLK 格式保存文件通常用于避免打印机失效。在可以打开损坏的 Microsoft Excel 文件的情况下,如果您以 SYLK 格式保存文件,然后关闭文件,之后重新打开文件,则可以将其进行“过滤”。 如下所示:

  1. 在“文件”菜单上,单击“另存为”。
  2. 在“保存类型”列表中,单击“SYLK(符号链接)”,然后单击“保存”。

 注释   使用 SYLK 文件格式将只保存工作薄中活动的工作表。当信息提示您所选的文件类型不支持工作薄时,单击“确定”。当信息提示您文件可能包含与 SYLK 格式不兼容的功能时,单击“是”。

  1. 在“文件”菜单上,单击“关闭”。
  2. 在“文件”菜单上单击“打开”。
  3. 选择保存的 .slk 文件,并单击“打开”。

 注释   要显示 .slk 文件,您需要在“文件类型”列表中单击“所有文件”。

  1. 在“文件”菜单上,单击“另存为”。
  2. 在“保存类型”列表框中,单击“Microsoft Excel 工作薄”,然后单击“保存”。

 注释   由于此格式仅保存活动的工作表,因此您必须重复打开损坏的文件并单独保存每个工作表。

显示以超文本标记语言 (HTML) 格式保存文件

在可以打开损坏的 Microsoft Excel 文件的情况下,如果您以 HTML 格式保存文件,然后关闭文件,之后重新打开文件,则可以将其进行“过滤”。 如下所示:

  1. 在“文件”菜单上,单击“另存为”。在“保存类型”列表中,单击“Web 页”。
  2. 在“保存”下,单击“整个工作薄”,然后单击“保存”。
  3. 关闭文件。
  4. 在 Excel 中重新打开文件。
  5. 在“文件”菜单上,单击“另存为”。在“保存类型”列表中,单击“Microsoft Excel 工作薄”。更改文件的名称以创建新的“过滤的”副本而不替换原始文件。

 注释   以 HTML 格式保存文件将会丢失某些功能。

如果您不能在 Excel 中打开文件

显示在 Excel 中将重新计算选项设置为手动

  1. 启动 Excel 并打开一个空白工作薄(如果屏幕上没有打开的空白工作簿)。
  2. 在“工具”菜单上,单击“选项”。
  3. 单击“重新计算”选项卡。
  4. 在“计算”节,单击“手动重算”,然后单击“确定”。
  5. 在“文件”菜单上,单击“打开”,尝试打开文件。

显示使用外部引用链接至损坏的文件

此方法仅检索工作薄中的数据,而不检索公式或值。

  1. 在“文件”菜单上单击“打开”。然后,从当前文件夹浏览至包含损坏文件的文件夹,单击“取消”。
  2. 单击“文件”菜单上的“新建”,单击“工作薄”,然后单击“确定”。
  3. 在新工作薄的 A1 单元格中键入“=文件名!A1”(其中“文件名”是损坏工作薄的名称)。如果显示“选择工作表”对话框,请选择适当的工作表,单击“确定”。
  4. 选择 A1 单元格,在“编辑”菜单上,单击“复制”。然后,选择与包含损坏文件中数据的单元格的范围差不多大小的区域,然后单击“编辑”菜单上的“粘贴”。
  5. 保持选定单元格的范围,单击“编辑”菜单上的“复制”。
  6. 在“编辑”菜单上,单击“选择性粘贴”,选择“值”,并单击“确定”。

此步骤删除指向损坏文件的链接,仅保留数据。

显示在 Microsoft Word 或“写字板”中打开文件

如果安装了 Microsoft Excel 转换器,您可以在 Microsoft Word 中打开 Excel 工作薄。如果文件在 Word 中打开,则您无法恢复模块工作表、对话框工作表、图表工作表、宏工作表或任何嵌入图表。同时,您无法恢复任何单元格公式,只能恢复单元格当前公式的结果。

您也可以在”写字板“中打开 Excel 工作薄。如果文件已打开,您可以恢复模块和类模块中的 Microsoft Visual Basic 代码。搜索单词“Sub”或“Function”以查找代码。

显示在 Microsoft Excel Viewer 中打开文件

如果安装了 Microsoft Excel Viewer ,您或许可以在 Microsoft Excel Viewer 中打开 Microsoft Excel 工作薄,复制单元格,并将单元格粘贴至新工作薄。但是,您无法恢复模块工作表、对话框工作表、图表工作表或宏工作表。同时,您无法恢复任何单元格公式,只能恢复单元格当前公式的结果。

显示如果图表链接至损坏文件,请使用宏来提取数据

  1. 在模块工作表中输入下列宏代码:
 Sub GetChartValues97() 
 Dim NumberOfRows As Integer 
 Dim X As Object 
 Counter = 2 
 
' 计算数据的行数。
NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
 
Worksheets("ChartData").Cells(1, 1) = "X 值"
 
' 向工作表中写入 x 坐标轴值。
 With Worksheets("ChartData") 
 .Range(.Cells(2, 1), _ 
 .Cells(NumberOfRows + 1, 1)) = _ 
 Application.Transpose(ActiveChart.SeriesCollection(1).XValues) 
 End With
 
' 在图表的所有系列中循环并将它们的值写入
 
 
' 工作表。
 For Each X In ActiveChart.SeriesCollection 
 Worksheets("ChartData").Cells(1, Counter) = X.Name 
 
 With Worksheets("ChartData") 
 .Range(.Cells(2, Counter), _ 
 .Cells(NumberOfRows + 1, Counter)) = _ 
 Application.Transpose(X.Values) 
 End With 
 
 Counter = Counter + 1 
 Next 
 
 End Sub
  1. 将新的工作表插入工作薄并重命名为 ChartData。
  2. 选择您要从中提取基础数据值的图表。

 注释   图表可以是嵌入在工作表中或是在单独的图表工作表中。

  1. 运行 GetChartValues97 宏。

图表中的数据将被置于 ChartData 工作表中。

保存文件的备份副本

作为预防措施,您可能要经常保存文件并在每次保存文件时创建备份副本。在“另存为”对话框(“文件”菜单,“另存为”命令)中,单击“工具”,再单击“常规选项”,然后选择“生成备份文件”复选框。这样,如果原始文件被意外删除或遭到破坏,您仍然可以访问完好的文件副本。

您也可以指定让 Excel 定期创建恢复文件。在“选项”对话框(“工具”菜单,“选项”命令),在“保存”选项卡中,选择“保存自动恢复信息,每隔”复选框,然后指定一个分钟数。在“自动恢复文件保存位置”框中,指定要保存恢复文件的位置。请确保未选中“禁用自动恢复”复选框(在“工作簿选项”)之下。

详细信息

有关文件恢复问题的详细信息,请参阅“参见”下列出的产品支持文件,或者直接转到 Excel 2003 技术支持中心

 
 
适用于:
Excel 2003