打开上次保存在早期版本的 Excel 中的工作簿时,可能会计算外部链接

症状

在 Microsoft Excel 中打开包含外部链接或用户定义函数的工作簿时,可能会遇到以下一个或多个症状:

  • 工作簿中的链接根据存储在工作簿中的外部链接表进行计算,可能与之前计算得出的链接不同。
  • 包含或引用指向未在外部链接表中存储值的其他工作簿的外部链接的公式可能会显示以下错误之一:
    • #REF!

    • #VALUE!

  • 包含加载项中的用户定义函数或其他不可用工作簿的公式可能会显示以下错误:
    • #NAME?

此外,由于结果是错误,因此使用此结果的其他单元格和函数可能会返回其他错误或意外结果。

原因

如果打开的工作簿上次保存在 Excel 版本中,该版本早于当前用于打开工作簿的版本,则会出现这种情况。 出现这种情况的原因是,无论链接更新状态如何,Excel 都会强制对以前在早期版本的 Excel 中保存的所有打开的工作簿进行完全重新计算。 为了完全重新计算工作簿,Excel 从工作簿外部链接表中获取所有外部引用的当前存储值。 即使你决定在系统提示时不更新这些链接,也会发生此行为。 Excel 将工作簿计算链更新为当前版本的 Excel。 如果外部链接源的值在工作簿的外部链接表中不可用,则 Excel 无法正确计算。 因此,Excel 返回 #REF! 错误。 在重新计算过程中不可用的 DDE 链接也是如此。 默认情况下,Excel 保存链接值的隐藏表以供计算。 在某些情况下,外部链接的值可能与公式中上次计算的值不同。 还可以关闭功能,以在 Excel 选项中基于单个工作簿存储外部链接值。

解决方法

若要解决此问题,请使用以下方法之一。

如果在打开工作簿时外部链接公式中出现错误,但尚未保存工作簿,请执行以下步骤:

  1. 不要保存工作簿。 请改为关闭工作簿而不保存工作簿。 这将撤消对工作簿所做的任何更改。
  2. 对于要打开的工作簿中每个不同的外部链接源,请确认源文件在链接公式中指定的路径上可用。 如果任何链接源不再可用,请将链接公式更改为指向备用源。 或者,永久删除链接公式以断开链接。 按照“更新或删除链接”部分中的步骤编辑链接或删除链接。
  3. 确认所有链接源在其定义的位置均可用后,打开在 Excel 中遇到问题的链接工作簿。 系统提示时,让 Excel 更新工作簿中的所有外部链接。
  4. 打开链接的工作簿并确认所有外部链接都已成功更新,并且工作簿已在当前版本的 Excel 中成功重新计算时,请保存工作簿。 它现在应按预期在当前版本的 Excel 中打开和更新链接。

如果已保存外部链接公式中存在错误的工作簿、链接源文件已移动或链接源文件不再可用,请找到原始链接源。 或者,查找备用源文件。 然后,修改指向这些源的链接。 若要检查外部链接源并还原或删除任何断开的链接,请执行以下步骤:

  1. 若要暂时阻止重新计算上次保存在早期版本的 Excel 中的文件,以便可以更新或删除外部链接,请将计算环境设置为手动。 若要暂时将计算模式设置为手动,请执行以下步骤:

    1. 关闭所有工作簿。
    2. 创建新工作簿。
    3. 选择“ Microsoft Office 按钮”,然后选择“ Excel 选项”。
    4. 在“公式”选项卡上,选择“计算选项”下的“手动”,然后选择“确定”。
    5. 打开保存的工作簿。
  2. 在“数据”选项卡上,选择“Connections”组中的“编辑链接”。

    每个链接将列出此工作簿链接到的源工作簿的文件名。 如果选择链接,则源工作簿的原始文件路径位置将显示在 “位置 ”标签中的列表下。

  3. 选择“ 检查状态” 以更新列表中所有链接的状态。 等待所有链接的状态更新。

  4. 检查“ 状态 ”列中的状态,选择链接,然后执行下列操作之一:

    • 如果状态为 “正常”,则无需执行任何操作。 链接正常工作,并且是最新的。
    • 如果状态为 “未知”,请选择“ 检查状态” 以更新列表中所有链接的状态。
    • 如果状态为 “不适用”,则链接使用 OLE 或动态数据交换 (DDE) 。 Excel 无法检查这些类型链接的状态。
    • 如果状态为 “错误:找不到源”,请选择“ 更改源”,然后选择链接的相应工作簿。
    • 如果状态为 “错误: 找不到工作表”,请选择“ 更改源”,然后在相应的文件中选择相应的工作表。 源可能已被移动或重命名。
    • 如果状态为 “警告:值未更新”,请选择“ 更新值”。 打开工作簿时未更新链接。
    • 如果状态为 “警告:源未重新计算”,请选择“ 开放源代码”,然后按 F9 计算工作簿。 可以在源文件中将工作簿设置为手动计算。 若要将工作簿设置为自动计算,请选择“ Microsoft Office 按钮”,然后选择“ Excel 选项”。 在“公式”选项卡上,选择“计算选项”下的“自动”。
    • 如果状态为 “错误:未定义名称”或“非矩形名称”,则在打开源工作簿之前,某些名称无法解析。 选择“ 开放源代码”,切换回目标工作簿,然后选择“ 检查状态”。 如果这不能解决问题,请确保名称没有缺失或拼写错误。 切换到源工作簿,选择“ 公式 ”选项卡,选择“ 定义名称”,然后查找名称。
    • 如果状态为 “警告:要更新值的开放源代码”,请选择“ 开放源代码”。 在打开源之前,无法更新链接。
    • 如果状态为 “源已打开”,则源为“打开”。 除非收到工作表错误,否则不需要执行任何操作。
    • 如果状态为 “从文件名更新的值”,则无需执行任何操作。 值已更新。
    • 如果状态为 “错误:状态不确定”,则 Excel 无法确定链接的状态。 源不能包含任何工作表。 或者,源可以保存为不支持的文件格式。 选择“更新值”。
  5. 解析所有链接引用后,将计算重置为自动,以便 Excel 可以在新版本的工作簿中完全重新计算工作簿。 为此,请按照下列步骤操作:

    1. 选择“ Microsoft Office 按钮”,然后选择“ Excel 选项”。

    2. 在“公式”选项卡上,选择“计算选项”下的“自动”,然后选择“确定”。

      Excel 现在应计算工作簿。 如果计算成功,请保存工作簿。 工作簿现在应按预期在当前版本的 Excel 中打开并更新链接。

有关如何确定计算环境的详细信息,请参阅 Excel 如何确定当前计算模式的说明

如果不需要引用外部链接的公式,请复制这些公式,然后将值仅粘贴到目标单元格中。

注意

将公式替换为其值时,Excel 会永久删除该公式。

若要复制公式并粘贴值,请执行以下步骤:

  1. 在上次保存工作簿的 Excel 版本中打开工作簿。 当系统提示更新链接时,请选择“ ”。 由于该文件上次保存在此版本的 Excel 中,因此不会强制更新链接。 可以使用链接的最后一个已知值进行计算。
  2. 右键单击包含引用外部链接的公式的单元格或单元格区域,然后选择“ 复制”。
  3. 右键单击同一单元格或单元格区域,然后选择“ 选择性粘贴”。
  4. 在“选择性粘贴”对话框中,选择“粘贴”下的“”,然后选择“确定”。

以这种方式删除所有不需要的链接后,保存工作簿。 然后,可以在 Excel 中打开工作簿,而无需更新这些链接。 出现此行为的原因是链接不再存在。