我正在处理一个单元格公式,该公式返回(通过VLOOKUP?)已关闭工作簿中的单元格(因此我认为INDIRECT不起作用)。问题是我想在活动工作表中使用一个值来确定参考工作簿中工作表的名称,但无法弄清楚。这是我所拥有的最好的。
=VLOOKUP($A3,'[Other Workbook.xlsm]ObsDFW'!$1:$800,COLUMNS($D4:D4)+3)
ObsDAL是"其他工作簿"中其中一个工作表的名称。我无法弄清楚的是如何保持" Obs"这个名称的一部分不变,但采取" DFW"来自细胞价值。
使用错误的代码,我希望它是:
=...[Master Statistics.xlsm]("Obs" & A1)'!$1:$800...
如果上下文有用,那么"其他工作簿"充满了每小时的天气观测资料,分为一系列机场中的每一个。我试图将此信息提取到另一个文件/工作簿中,因此我不必多次在代码中指定每个机场。
提前致谢!
答案 0 :(得分:1)
你可以尝试这种VBA方法。这样您就可以根据dynamic_part
(工作表名称)
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
在更改动态声部后,将此宏指定为形状并将其触发。当您第一次触发它时,请确保打开两个工作簿。