0

我有 3 个工作簿 - Parent1.xlsx 和 Child.xlsx

Parent1.xlsx 包含 Child.xlsx 通过 vlookup 引用的数据。

vlookup 公式为

=VLOOKUP(1,[Parent1.xlsx]Sheet1!$A$1:$B$7,2,FALSE)

这很好用。

现在我必须将 Parent1.xlsx 复制到 Parent2.xlsx。

为了让 Child.xlsx 工作,我必须将公式更改为

=VLOOKUP(1,[Parent2.xlsx]Sheet1!$A$1:$B$7,2,FALSE)

如果它只适用于 1 个细胞,那没关系,但我需要为许多细胞做这件事。

为了解决这个问题,我计划使用命名范围作为文件名。所以在 Child.xlsx 的 Sheet2 中,我有一个命名范围“父”,它具有文件的名称 - Parent2.xlsx。

我似乎无法让它发挥作用。

如果命名范围“父”的值为

'[Parent2.xlsx]Sheet1'

然后我试图得到

=VLOOKUP(1,parent!$A$1:$B$7,2,FALSE)

去工作。

这甚至可能吗?除了复制粘贴所有内容并使用 VBA 之外,还有其他可能性吗?

谢谢

4

2 回答 2

2

如果您只需要更改对文件 Parent2 而不是 Parent1 的所有外部引用,请选择Data tabEdit Links然后单击Change Source

于 2013-07-22T21:02:49.563 回答
1

尝试:

"=VLOOKUP(1," & ActiveWorkbook.Names("parent").Value & "!$A$1:$B$7,2,FALSE)"

编辑:刚刚意识到这是 VBA 解决方案。这在单元格公式中不起作用。

于 2013-07-22T21:02:30.913 回答