使用存储在单元格中的文件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进行更改。