0

我有一个非常简单的问题。

我想从另一个工作簿中获取值。一个简单的方法是在单元格中输入这样的公式:

='C:\Path\[Workbook.xlsm]Sheet1'!$D$4

这运作良好。它返回路径目录中 workbook.xlsm 中 sheet1 的单元格 D4 中的值。

由于我必须处理多个值并且路径/名称可以更改,因此我想将路径/名称存储在一个单元格中,并在需要的任何地方重复使用它们。

in OpenWb.xlsm, Sheet_Report, D9: 
    value: C:\Path\
    Name: Path
in OpenWb.xlsm, Sheet_Report, D10: 
    value: Workbook.xlsm
    Name: WbName

为了使用这些值,我写道:

='Path[WbName]Sheet1'!$D$4

Excel 给出不正确的地址错误添加 [:

='[Path[WbName]Sheet1'!$D$4

当我删除 [,Excel 打开一个文件对话框,我可以在其中选择路径、名称,然后选择工作表。然后它可以工作,但是通过这些文件对话框很烦人。

如何编写公式以使用单元格的值转到另一个工作簿?

4

2 回答 2

1

您需要使用 INDIRECT

=INDIRECT("'"&Path&"["&WbName&"]Sheet1'!$D$4")

但这仅在源工作簿打开时才有效(在这种情况下,您不需要路径!)。如果您安装了 MOREFUNC 插件,它有一个 INDIRECT.EXT 函数,该函数应该适用于已关闭的工作簿(我不使用它,因此无法根据经验发表评论)

于 2013-06-03T15:50:03.403 回答
0

我只是将excel用于宏:

语法非常简单,可以通过简单的循环概括为范围。

 Arg = "'" & Path & "[" & File & "]" & Sheet & "'!" & "R4C4" 'Range(Ref.Range("A1").Address(, , xlR1C1))C
     'Execute XLM macro
    GetValue = ExecuteExcel4Macro(Arg)
于 2013-07-11T15:20:54.340 回答