使用公式来操作外部工作簿的最后一页

时间:2019-12-19 06:58:42

标签: excel excel-formula

有2个工作簿,如下所示:

A.xlsx和B.xlsx

考虑在A.xlsx的单元格$ A $ 1中创建一个公式以引用B.xlsx的最后一页的单元格$ A $ 1,如下所示。

='[B.xlsx]lastsheet'!A1

可以通过为B.xlsx的最后一个工作表命名为“ lastsheet”来完成,但是当定期添加新工作表时,它不灵活。

除了VBA,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

这是一种方法

为此工作

  1. 与使用Excel 4函数.xlsm一样,文件B必须另存为GET.WORKBOOK(1)
  2. 在使用INDIRECT时必须打开文件B

工作簿B设置

打开Formula | Name Manager并创建一个新的定义名称。说 GetLastSheetName ,然后在Refers To

中输入以下公式
=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))

enter image description here

接下来,在您选择的任意工作表中,输入公式

=INDEX(GetLastSheetName,COUNTA(GetLastSheetName)+RAND()*0)

您将看到最后一张纸的名称出现在此单元格中。为了说明起见,假设您在A1

Sheet1中输入了上述公式

enter image description here 最后一件事。假设您在B.xlsm中的最后一个工作表是Sheet4,它在单元格A1中的值为“ 1111”。

enter image description here

我们将尝试使用A.xlsxIndirect中获得该值

工作簿A

将此公式插入A.xlsx的任何单元格中

=INDIRECT("[B.xlsm]"&[B.xlsm]Sheet1!$A$1&"!A1")

,您将得到1111。注意,我们在任何地方都没有使用最后一张工作表Sheet4的名称。 [B.xlsm]Sheet1!$A$1部分获得Sheet4,然后IndirectA1获得Sheet4的值

enter image description here

推荐

上面已经说了/做完了,我建议您使用VBA,因为那样会更简单。