除非源工作簿已打开,否则Excel链接无法正常工作?

时间:2013-06-06 09:10:01

标签: excel excel-formula excel-2003

我有一个Master工作簿,看起来像这样: enter image description here

我对所有员工都有个别声明:

SR Statement

我的所有动态命名范围在主表上都运行良好,看起来都很好。

现在我注意到,如果我关闭工作簿,那么数据应该突出显示的区域,全部转为 #REF 错误... < / p>

当工作簿打开时,所有提取数据的公式都是这样的:

=INDEX('Staff Rewards Master.xls'!BenefitsData,MATCH(FirstName & " " & Surname,'Staff Rewards Master.xls'!Employees,0),MATCH(A:A,'Staff Rewards Master.xls'!BenefitNames,0))
当源或主工作簿关闭时,

和公式(自然地)成为这个:

=INDEX('C:\vss\Staff Rewards Statements\Staff Rewards Master.xls'!BenefitsData,MATCH(FirstName & " " & Surname,'C:\vss\Staff Rewards Statements\Staff Rewards Master.xls'!Employees,0),MATCH(A10,'C:\vss\Staff Rewards Statements\Staff Rewards Master.xls'!BenefitNames,0))]

顺便说一句,如果我将其复制到RUN对话框(从上面的路径中取出),文件将在Excel中打开,没有问题:

  

C:\ vss \ Staff Rewards Statements \ Staff Rewards Master.xls

如果我在关闭源Master工作簿后计算Statement表,则会收到以下错误消息:

Name Reference Error

现在,我应该提一下,如果我删除了定义的名称并且只是放入单元格引用它可以正常工作,但为什么我的动态命名范围不能工作?

例如,这没有问题:

=INDEX('O:\Dev\Staff Rewards Statements\[Staff Rewards Master.xls]Staff Benefits Master'!$B$7:$K$150,MATCH(FirstName & " " & Surname,'O:\Dev\Staff Rewards Statements\[Staff Rewards Master.xls]Staff Benefits Master'!$A$7:$A$150,0),MATCH(A10,'O:\Dev\Staff Rewards Statements\[Staff Rewards Master.xls]Staff Benefits Master'!$B$6:$T$6,0))

那么我在这里错过了什么或做错了什么?

4 个答案:

答案 0 :(得分:4)

您不能使用名称来引用已关闭工作簿中的范围。

我猜(不看书)你可以用全列/整行引用替换你的命名引用(因为匹配不会在空白处触发)。这将解决您的需求,不会导致速度问题。

HTH

答案 1 :(得分:2)

INDEX 函数可能是不稳定的,具体取决于您使用的excel版本,它可能具有直接或间接依赖性。 (来源:http://www.decisionmodels.com/calcsecretsi.htm)。

无论如何,后果是重新计算结果。如果在这种情况下重新计算结果,可能需要打开excel文件。

我使用与非易失性功能相同类型的目录,我没有问题(办公室2016)。即使更新结果,每次打开文件时都会更新。

答案 2 :(得分:1)

迟到的回复,并使用2016 365回答,但...... 外部引用在外部工作簿中工作,即使它们已关闭。您获得的错误表示外部命名引用引用表的位置,例如:“= Table1 [Employee]”。这不起作用!

关闭Excel设置/选项/公式/'在公式中使用表名'的工作原理是什么。需要删除外部命名范围,并在关闭此设置的情况下重新设置。所以新命名的范围将是“= worksheet1!$ D $ 4:$ D $ 100”。您可能希望在增加表格大小时看到范围如何扩展。

然后您可能仍然会收到错误,但它会从#ref更改为#value。如果您尝试使用具有外部定义的命名范围的OFFSET,则仍会导致错误 - 如上所述,我认为这与任何公式的易变性有关。

Brian Barrett

答案 3 :(得分:-2)

这将为您中的某些人解决问题。我要从中提取数据的文件来自我们的总部。我认为问题是由于他们的计算机上没有365 Office(OneSource),并且他们使用的是Office的较早版本。我还注意到,我无法将文件的“自动保存”更改为“开”,“自动关闭此工作簿包含阻止其使用自动保存的功能”。我想将信息提取到的文件是xlsx文件。当我将鼠标悬停在“自动保存”上时,它表示总部文件是以较旧的格式创建的,并选择“另存为”以更新格式。好吧,因为总公司文件的扩展名也是.xlsx。

因此,我复制了总部文件并将其粘贴到新的新工作簿上,然后将其保存在OneSource驱动器上。如果这样不起作用,则以略有不同的名称保存总部文件,或在保存文件之前尝试使用特殊粘贴(值)。