我有一个主工作簿,需要从特定日期的子文件夹中提取数据。用户在运行宏之前指定日期。
主工作簿仅充当表示层,并且日期子文件夹中的源/基础数据具有一致的名称和格式。
假设在我的主工作簿“Sheet1”中具有以下功能A1
:
='C:\Development\GridsResults\20101115\[DATA_sheet_20101115_D.xlsx]Stresses'!$C$9
您会注意到文件链接中有两个“日期”部分 - 这需要由用户提供。在本例中,提供的日期是15-Nov-2010
。现在,如果用户提供23-Nov-2010
,则上述链接应该是
='C:\Development\GridsResults\20101120\[DATA_sheet_20101120_D.xlsx]Stresses'!$C$9
我已经有一个公式,可以在我的主工作簿中的工作表中创建上述文件路径Links
。这是创建链接的动态部分。现在在工作Links
表中,假设我的魔法结果位于单元格中B3
,并且是一个名为范围的命名,DATA
即
C:\Development\GridsResults\20101120\[DATA_sheet_20101120_D.xlsx]
因此从理论上讲,结果应该是,我的主工作簿中的单元格A1
应该Sheet1
使用这个生成的文件路径
="'" & DATA & "Stresses'!$C$9
是否有标准 Excel 函数组合可以实现这一点?
答案1
使用=INDIRECT("'" & DATA & "Stresses'!$C$9")
。
答案2
我不相信使用标准 Excel 函数可以实现这一点。如果可以的话,它肯定看起来不太漂亮。
我认为最好的办法是创建一个宏;当然,激活方法由您决定。宏看起来应该像这样。
Dim L1 As Variant, L2 As Variant
L1 = ThisWorkbook.Names("DATA").RefersToRange
L2 = "='" & L1 & "Stresses'!R9C3"
Sheets("Sheet1").Range("A1").FormulaR1C1 = L2
答案3
http://numbermonger.com/2012/02/11/excel-pull-function-creating-dynamic-links-to-closed-workbooks/
上面的链接可能是一个不错的选择。我没有时间亲自测试。