使用存储在单元格中的文件path的公式

我有一个名为“设置”的工作表上的单元格A1,具有以下文件path:

C:\Users\Arun Victor\Documents\New folder\MASTER.xlsm 

同一个工作簿中的Sheet1有一堆链接到MASTER.xlsm中的各个单元格的单元格,如下所示:

 ='C:\Users\Arun Victor\Documents\New folder\[MASTER.xlsm]Employee WOs'!D4 

现在,无论何时文件path有变化,我都必须手动编辑每个单元格。 相反,我需要一个使用存储在公共单元格A1中的文件path的公式,并执行如下操作:

 ='*File path from Sheet-Settings A1* Employee WOs'!D4 

你正在寻找Indirect() 。 如果您的单元格A1具有您将更改的path( C:\Users\Arun Victor\Documents\New folder\[MASTER.xlsm] )。

在您的工作表1中,当前=C:\Users\Arun Victor\Documents\New folder\[MASTER.xlsm]Employee WOs'!D4可以用=Indirect("'"&A1&"Employee WOs'!D4")

这是一个例子。 我的桌面上有一个名为“TextBook.xlsx”的工作簿。 我希望我的公式能够返回任何我想要的单元格的值,我将把它放在单元格C9中。

在这里输入图像说明

例如,我可以将C9从A1更改为B1029 ,D9将返回该单元格的任何值。 (在我的“TextBook.xlsx”中, A1实际上只是说“单元格A1”。

注意使用Indirect() ,你必须打开你正在使用的文件,否则你会得到一个错误。 换句话说,我打开了我的TextBook.xlsx,这就是为什么你可以看到结果(“单元格A1”)。 如果我closures工作簿,这将更改为#REF错误。

在你的VBA代码中,你可以使用像这样的东西:

 = Sheet("Settings").Cells(1,1) & "Employee WOs'!D4" 

这样,您的代码将自动从“设置”表中对单元格A1进行更改。