非常简单的问题,我想从不同工作表(标签)中的同一工作簿中调用相同单元格地址的值我将值返回到不同的工作簿。
我正在使用 INDIRECT
方法,但它运行正常,但我不需要更改单元格地址或工作簿名称,因此无需将其放入变量。我可以连接两个函数来使代码更小更快吗?
以下是我的代码摘录,工作正常,我知道其他工作簿需要打开才能返回值。
=IF(J65>INDIRECT("'["& $N$1 &"]"& H65 &"'!"& $N$2),INDIRECT("'["& $N$1 &"]"& H65 &"'!"& $N$2),J65)
N1 =工作簿名称(静态)
N2 =单元格地址(静态)
J65 = Sheetname(变量)
非常感谢。
答案 0 :(得分:1)
您可以使用已定义的名称。我创建了一个名为testbook.xlsx
的工作簿,然后在另一个工作簿中我定义了两个名称:
1)名称target
,其值为="!$A$1"
2)名称wb
,其值为="[testbook.xlsx]"
引号,括号,说明标记等必须是定义名称的一部分。另请注意,引号内的=
不是。例如:
您可以使用像INDIRECT(wb & B1 & target)
这样的表达式,它比您现在所做的更具可读性:
出于测试目的,我在C1中输入了公式=wb & B1 & target
,以确保我正确定义了字符串wb
和target
。
5确实是我在A1
testbook
中放入的值,如果我将上面屏幕截图中B1
的内容更改为Sheet2
,则C1中的值会成功更改我在[testbook.xlsx]Sheet2!A1
中的价值。