excel - 使用公式操作外部工作簿的最后一张表
问题描述
有2个工作簿如下:
A.xlsx 和 B.xlsx
考虑在 A.xlsx 的 $A$1 单元格中创建一个公式来引用 B.xlsx 最后一张表的单元格 $A$1,如下所示。
='[B.xlsx]lastsheet'!A1
可以通过给 B.xlsx 的最后一张表命名为“lastsheet”来完成,但是在定期添加新表时它并不灵活。
除了VBA还有什么解决方案?
解决方案
这是一种方法
为了这个工作
- 文件 B 必须
.xlsm
像我们使用 Excel 4 函数一样保存GET.WORKBOOK(1)
- 文件 B 必须打开,因为我们正在使用
INDIRECT
工作簿 B 设置
打开Formula | Name Manager
并创建一个新定义的名称。说,GetLastSheetName并输入以下公式Refers To
=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))
接下来,在您选择的任何工作表中,输入公式
=INDEX(GetLastSheetName,COUNTA(GetLastSheetName)+RAND()*0)
您将看到最后一张工作表的名称出现在此单元格中。出于解释的目的,假设您输入了上面的A1
公式Sheet1
最后一件事。假设您在 B.xlsm 中的最后一个工作表是 Sheet4,它在 cell 中的值为“1111” A1
。
我们将尝试在A.xlsx
使用中获取此值Indirect
工作簿 A
将此公式插入到任何单元格中A.xlsx
=INDIRECT("[B.xlsm]"&[B.xlsm]Sheet1!$A$1&"!A1")
你会得到1111
。请注意,我们没有在Sheet4
任何地方使用最后一张纸的名称。[B.xlsm]Sheet1!$A$1
部分获取Sheet4
,然后获取Indirect
from 的A1
值Sheet4
推荐
说了/做了以上所有事情后,我建议使用 VBA,因为那样会更简单。
推荐阅读
- popup - 如何处理 Robot Framework 中的授权弹窗
- selenium - 关于 Selenium Webdriver 中隐式等待的问题
- android - 如何关闭这条看起来像对话框的消息?
- sql - 结果类似于 SQL Server 2016 中的 Oracle 查询
- javascript - html 表单数据转换为 javascript 用于基本数学
- laravel - 我在加入请求时增加了用户
- scala - 隐式类也可以是动态的吗?
- python-3.x - 在没有 python 的情况下将 py2app 应用程序发送到 Mac
- java - 无法使用 JsonPath 库获取带空格的键值
- c# - Windows 失去焦点后 IStylusSyncPlugin 未接收数据