间接表名称只作为variables,而不是工作簿或单元格

非常简单的问题,我想从不同的工作表(选项卡)从相同的工作簿中的相同的单元格地址的值我将这些值返回到不同的工作簿。

我正在使用INDIRECT方法,它工作正常,但是我不需要单元格地址或工作簿名称来更改,因此不需要将其放置在一个variables中。 我可以连接两个函数来使代码更小更快吗?

下面是我的代码提取,这工作正常,我知道其他工作簿需要打开才能返回值。

 =IF(J65>INDIRECT("'["& $N$1 &"]"& H65 &"'!"& $N$2),INDIRECT("'["& $N$1 &"]"& H65 &"'!"& $N$2),J65) 
  • N1 =工作簿名称(静态)

  • N2 =小区地址(静态)

  • J65 =图纸名称(可变)

非常感谢。

你可以使用定义的名字。 我创build了一个名为testbook.xlsx的工作簿,然后在另一个工作簿中定义了两个名称:

1)用value ="!$A$1"命名target

2)将wb的值命名="[testbook.xlsx]"

引号,括号,解释标记等是定义名称的一部分,这一点很重要。 还要注意= 不在引号内。 例如:

在这里输入图像说明

你可以使用像INDIRECT(wb & B1 & target)这样的expression式,它比你现在正在做的更具可读性:

在这里输入图像说明

为了testing目的,我在C1中input了公式=wb & B1 & target ,以确保我正确定义了stringwbtarget

5的确是我在testbook放入A1的值,如果将上面屏幕截图中B1的内容更改为Sheet2 ,则C1中的值成功更改为[testbook.xlsx]Sheet2!A1