我可以在Excel 2010中轻松使用外部参考
单元格A1:='BLAH.XLSX'!Fees[[#Totals],[Billable Hours]]
但是假设B1包含FOO.XLSX
我现在想要A1
='FOO.XLS'!Fees[[#Totals],[Billable Hours]]
我尝试了间接功能
=INDIRECT(CONCATENATE("'", B1, "'!Fees[[#Totals],[Billable Hours]]"))
但这只是一个#REF错误,但它解析了(我在excel中使用了show steps函数) 到:
=INDIRECT("'FOO.XLSX'!Fees[[#Totals],[Billable Hours]]")
我尝试了很多东西但没有给我正确的参考
suchas =INDIRECT(CONCATENATE("='", B1, "'!Fees[[#Totals],[Billable Hours]]"))
解析为
=INDIRECT("='FOO.XLSX'!Fees[[#Totals],[Billable Hours]]")
此外,我想避免VBA避免安全警告/对话框等,但如果这是唯一的方法,我会接受这个
我觉得我很亲近
答案 0 :(得分:1)
正如Jesse所说,你不能使用INDIRECT来引用封闭的工作簿。除非您使用加载项功能,否则没有其他公式解决方案。 INDIRECT.EXT适用于已关闭的工作簿,但您需要下载MOREFUNC
addin才能获得该功能,google Morefunc
答案 1 :(得分:1)
请参阅迪克博客的INDIRECT and closed workbooks
Harlan Grove的Pull function并通过VBA直接打开工作簿进行大规模操作是两种最常用的方法