我有一个非常简单的问题。
我想从另一个工作簿中获取值。一种简单的方法是在单元格中输入这样的公式:
='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打开文件对话框,我可以在其中选择路径,名称,然后选择工作表。然后它可以工作,但是通过这些文件框是很烦人的。
如何使用单元格的值编写公式以转到其他工作簿?
答案 0 :(得分:1)
您需要使用INDIRECT
=INDIRECT("'"&Path&"["&WbName&"]Sheet1'!$D$4")
但只有在源工作簿打开时才会起作用(在这种情况下,您不需要路径!)。如果您安装了MOREFUNC加载项,它有一个INDIRECT.EXT函数,该函数应该与已关闭的工作簿一起使用(我不使用它,因此无法根据经验发表评论)
答案 1 :(得分:0)
我只是使用excel for macro:
语法非常简单,可以通过简单的循环进行范围化。
Arg = "'" & Path & "[" & File & "]" & Sheet & "'!" & "R4C4" 'Range(Ref.Range("A1").Address(, , xlR1C1))C
'Execute XLM macro
GetValue = ExecuteExcel4Macro(Arg)