You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel汇总表中引用工作簿最后一个工作表的指定单元格

如何在Excel汇总表中引用工作簿最后一个工作表的指定单元格

嘿,这个需求我太熟了——每月新增工作表,汇总表要自动抓最后一张表的指定单元格,不用管它叫啥名字对吧?刚好有两种靠谱的方法,看你偏好公式还是宏:

方法一:用Excel函数组合(无需VBA,需保存为启用宏格式)

这个方案用宏表函数+文本处理来实现,步骤很简单:

在汇总表的目标单元格里输入以下公式(把A1换成你实际要引用的单元格,比如B5):

=INDIRECT("'"&TEXTAFTER(INDEX(GET.WORKBOOK(1),SHEETS()),"]")&"'!A1")

公式拆解:

  • GET.WORKBOOK(1):返回工作簿里所有工作表的完整名称(格式类似[你的工作簿名.xlsx]Pay Estimate 1)
  • INDEX(..., SHEETS()):从所有工作表里挑出最后一张的名称(SHEETS()会返回总工作表数)
  • TEXTAFTER(..., "]"):把工作表名称里的路径部分去掉,只留下纯表名(比如Pay Estimate 1)
  • INDIRECT("'"&...&"'!A1"):把处理好的表名和单元格拼接成合法的引用,最终获取对应单元格的值

注意事项:

  • 首次使用时Excel可能会提示安全警告,选择启用内容即可
  • 记得把文件保存为.xlsm格式(启用宏的工作簿),否则公式会失效
  • 新增工作表后,公式会自动更新引用,不用手动修改

方法二:自定义VBA函数(更稳定,需启用宏)

如果你觉得公式有点绕,写个简单的自定义函数更省心:

  1. 按Alt+F11打开VBA编辑器
  2. 在左侧工程窗口右键点击你的工作簿,选择「插入」→「模块」
  3. 粘贴以下代码:
Function LastSheetCell(cellRef As String) As Variant
    ' 获取工作簿最后一个工作表
    Dim lastSheet As Worksheet
    Set lastSheet = ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    
    ' 返回指定单元格的值
    LastSheetCell = lastSheet.Range(cellRef).Value
End Function
  1. 回到Excel,在汇总表单元格里输入=LastSheetCell("A1")(同样把A1换成目标单元格)

这个方法的好处是不用处理复杂的文本拼接,而且对特殊字符的工作表名兼容性更好,唯一要求就是启用宏并保存为.xlsm格式。

备注:内容来源于stack exchange,提问作者Big Bald E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:12:58