使用单元格值/内容来确定外部参考文件或工作表名称?

我正在处理一个单元格公式,该单元格公式返回(通过VLOOKUP?)一个封闭工作簿中的单元格(因此我相信INDIRECT将不起作用)。 问题是我想在活动工作表中使用一个值来确定参考工作簿中工作表的名称,并且无法弄清楚。 这是我得到的最好的。

=VLOOKUP($A3,'[Other Workbook.xlsm]ObsDFW'!$1:$800,COLUMNS($D4:D4)+3) 

ObsDAL是“其他工作簿”中其中一张表的名称。 我想不出的是如何保持这个名字的“Obs”部分不变,但是从单元格值中取出“DFW”。

使用错误的代码,我希望它是:

 =...[Master Statistics.xlsm]("Obs" & A1)'!$1:$800... 

如果上下文有帮助,那么“其他工作簿”就是充满了每小时的天气观察,对于一系列机场中的每一个机场来说都是分成一页的。 我试图把这个信息放到另一个文件/工作簿中,所以我不必在代码中多次指定每个机场。

提前致谢!

你可以试试这个VBA方法。 这样你就可以根据你的dynamic_part (sheetname)调整Vlookup公式

 Sub VlookupClosedWorkbook() Dim dynamic_part As Variant dynamic_part = Range("B1").Value 'You should enter in cell B1 dynamic part of sheet name For x = 3 To Range("A" & Rows.Count).End(xlUp).Row Range("B" & x).Value = "=VLOOKUP(A" & x & ",'[Other Workbook.xlsm]Obs" & dynamic_part & "'!$1:$800,COLUMNS($D4:D4)+3,FALSE)" Next x End Sub 

在更改dynamic部分之后,将此macros分配给形状并将其引发。 当您第一次触发它时,请确保您打开了两个工作簿。