【问题标题】:Excel links not working unless source workbook is open?除非源工作簿打开,否则 Excel 链接不起作用?
【发布时间】:2013-06-06 09:10:00
【问题描述】:

我有一个 Master 工作簿,如下所示:

我有所有员工的个人声明,如下所示:

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

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

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

=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))]

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

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

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

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

例如,这没有问题:

=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))

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

【问题讨论】:

    标签: excel excel-formula excel-2003


    【解决方案1】:

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

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

    HTH

    【讨论】:

    • 多么令人困惑,我在使用 INDEXOFFSET 的动态命名范围上苦苦挣扎了好几天,现在我发现 Excel 无法接受!
    • 一些推理(称之为舒适,而不是帮助):通过范围引用,Excel 可以访问文件的“原始数据”以询问相关范围。有了名字,它必须做更多的事情,它必须找到名字所指的范围,然后询问它。如果不打开这本书,就无法执行额外的逻辑步骤。相同的逻辑适用于引用带有偏移公式的封闭书。我知道这是对文件结构的简化,但对我来说很有意义!
    【解决方案2】:

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

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

    ME 我正在使用与您相同类型的具有非易失性功能的目录,我没有问题(office 2016)。即使更新结果,每次我打开文件时都会更新所有内容。

    【讨论】:

      【解决方案3】:

      回复晚了,使用 2016 365 回复,但是... 外部参考确实在外部工作簿中工作,即使它们已关闭。您收到的错误指示外部命名引用引用表的位置,例如:“=Table1[Employee]”。这不起作用!

      在您关闭 Excel 设置 /options/formulas/'Use table names in formulas' 的地方会起作用。需要删除外部命名范围并在关闭此设置的情况下重新设置。因此,新的命名范围将类似于“=worksheet1!$D$4:$D$100”。您可能希望看到当您增加表格大小时范围如何扩大。

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

      布赖恩·巴雷特

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        猜你喜欢
        • 2017-12-19
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        相关资源
        最近更新 更多