打开工作簿后,Excel 链接数据公式变为#REF

打开工作簿后,Excel 链接数据公式变为#REF

这种情况发生过多次(但并非总是如此)。这非常令人沮丧,我不知道为什么会这样。

A.xls 包含链接到 B.xls Sheet1 的公式。我正在处理 A.xls。我决定打开 B.xls。一旦我这样做 - 对 Sheet1 的所有引用都变成了 #REF。

IE。

='C:\..\[B.xls]!Sheet1'!A1

变成

='C:\..\[B.xls]!#REF'!A1

当然,所有之前正确的值现在都返回#REF。

这绝对令人沮丧,因为我没有办法在不重新打开我上次保存的 A.xls 版本的情况下撤消它。查找和替换也不理想,因为 A.xls 引用了 B.xls 的几个不同工作表 - 而且它们现在都是 #REF。

知道为什么吗?:( 运行 Excel 2010。

答案1

我遇到了同样的问题。我的是 Office 2010。Excel 文件存储在共享驱动器(NAS)中。

解决方案:转到文件 > 选项 > 信任中心。在右侧,单击信任中心设置。在信任中心窗口的左侧,单击受保护的视图,然后在右侧取消勾选对来自互联网的文件启用受保护的视图。

现在我的#REF! 问题解决了。

答案2

避免该问题的一种方法:
使用INDIRECT()文本引用的文件和工作表名称。

例如:
令 Z1 为'C:\..\[B.xls]!Sheet1' (带引号?未经测试)
=INDIRECT(Z1&"!A1")然后在需要引用该工作表中单元格 A1 的地方 使用。

INDIRECT功能仅在您打开了辅助 Excel 文件时才有效。一旦关闭,所有这些INDIRECT引用都变为 #REF。

答案3

如果引用已关闭的工作簿,Excel 中的大多数公式都不会更新其公式。现在,如果您打开公式引用的工作簿,Excel 将尝试立即更新它。

我认为您的问题是,B.xls 已发生更改,而 A.xls 中的公式在您打开 B.xls 时尝试刷新其公式。由于自上次计算 A.xls 中的公式以来,B.xls 中发生了更改(例如,重命名了工作表或直接删除了工作表),A.xls 中的公式无法找到以前的引用,因此返回#REF!

我认为你可以通过两种方式来避免这种情况:

  1. 通过复制/粘贴值删除 A.xls 中的公式。这将阻止 A.xls 中的任何更新因 B.xls 中的更改和工作表中的任何其他公式而发生。但这本身就是一个缺点。
  2. 确保对 B.xls 的任何更改不涉及在 A.xls 中提供公式的工作表删除、重命名或行/列删除。

答案4

解决方案可以是打开您提供链接的文件,然后转到Data > Edit Links > Open Source。这将打开源而不会发生错误#ref

另一种选择是保留带链接和不带链接的两个版本。无链接版本可通过 制作Data > Edit Links > Break Link

我认为这是 Excel 中的某种错误,导致工作表名称#ref

相关内容