将Excel VLOOKUP设置为动态外部文件

将Excel VLOOKUP设置为动态外部文件,excel,vlookup,Excel,Vlookup,我构建了一个excel文件,它运行带有外部文件的VLOOKUP。外部文件每天都在更改,文件的命名/位置是动态设置的,没有标准约定。因此,我编写了一个小的VBA脚本,让用户选择当天的文件,然后设置要在表数组中查找的xls文件的文件路径和文件名。 然而… 使用此数据填充单元格,然后尝试在VLOOKUP中引用该单元格,将返回一个错误(“公式或函数没有可用的值”)。如果我手动将完整的文件路径和文件名输入到运行VLOOKUP的单元格中,它就可以正常工作。似乎不理解从另一个单元格传入的值是真实的文件路径。

我构建了一个excel文件,它运行带有外部文件的VLOOKUP。外部文件每天都在更改,文件的命名/位置是动态设置的,没有标准约定。因此,我编写了一个小的VBA脚本,让用户选择当天的文件,然后设置要在表数组中查找的xls文件的文件路径和文件名。
然而…
使用此数据填充单元格,然后尝试在VLOOKUP中引用该单元格,将返回一个错误(“公式或函数没有可用的值”)。如果我手动将完整的文件路径和文件名输入到运行VLOOKUP的单元格中,它就可以正常工作。似乎不理解从另一个单元格传入的值是真实的文件路径。 以下是我所拥有的:

B2 = fileName  (no dir path)
B3 = worksheetName
B4 = pathToFile
B5 = =CONCATENATE(B4&"["&B2&"]"&B3)
B7 = lookupValue
C7 = =VLOOKUP(B7,'B5'!$G:$I,3,FALSE)

C7显然是我遇到问题的地方。非常感谢您的任何帮助

也许你的问题与你正在尝试的代码有关,谢谢。@BigBen C7中的公式是导致错误的原因。它引用B5的方式不起作用嗯-更好的方法可能只是更新链接。如果你在公式中使用完整的文件路径/文件名,你就有一个指向该工作簿的链接。Excel允许您将该链接更新到新工作簿。另一个选项是使用路径/文件名动态构建公式。文件>编辑指向文件的链接>更改源以更新链接。@jmarx34-几乎任何解决方案都比间接(IMHO)好-另一种选择是使用引用外部文件范围的命名范围,使用小型vba脚本更新命名范围的引用,并在VLOOKUP中使用命名范围