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

如何在Excel跨工作簿公式中用Worksheets(1)替代工作表名称?

可行的!这里有几种方法帮你实现自动引用第一个工作表的数据

你遇到的问题是因为Worksheets(1)是VBA专属语法,Excel单元格公式没法直接识别它。不过我们可以用工作表函数或Power Query来动态获取第一个工作表的名称,从而实现自动更新的引用,下面分两种场景给你解决方案:

方法一:用工作表函数实现(需要启用宏)

这种方法适合Pink File工作簿经常处于打开状态的场景,公式会实时更新:

在Customers工作簿的B2单元格输入:

=INDIRECT("'[Pink File.xlsx]"&INDEX(GET.WORKBOOK(1),1)&"'!$G$3")

公式解释:

  • GET.WORKBOOK(1):这是一个宏表函数,会返回当前打开的Pink File工作簿里所有工作表的名称数组
  • INDEX(...,1):从数组里取出第一个工作表的名称(也就是你每月新增的最新工作表)
  • INDIRECT(...):把拼接好的引用字符串转换成实际的单元格引用,从而获取G3的数据

注意事项:

  • 必须把Customers工作簿保存为启用宏的工作簿(.xlsm格式),否则宏表函数会失效
  • Pink File工作簿需要处于打开状态,INDIRECT才能正常引用其中的数据
  • 不管第一个工作表的名称是什么(比如"Mar 18"或"Apr 2"),公式都会自动识别并引用它的G3单元格

方法二:用Power Query实现(无需宏,支持关闭的工作簿)

如果你不想启用宏,或者需要引用关闭的Pink File工作簿,Power Query是更稳定的选择:

  1. 在Customers工作簿里,点击数据选项卡 → 获取数据 → 从文件 → 从工作簿
  2. 选择你的Pink File.xlsx,在弹出的导航器窗口里,不要选择具体工作表,点击转换数据进入Power Query编辑器
  3. 打开高级编辑器,替换代码为类似下面的内容(注意修改文件路径):
let
    Source = Excel.Workbook(File.Contents("C:\你的文件夹路径\Pink File.xlsx"), null, true),
    FirstSheet = Source{0}[Data], // 获取第一个工作表的数据
    ExtractG3 = FirstSheet{2}[Column7] // 提取第3行第7列(对应G3)的值
in
    ExtractG3
  1. 点击关闭并上载,把结果加载到Customers工作簿的B2单元格(或指定位置)

后续更新:

之后每月新增工作表后,只要在Customers工作簿里点击数据 → 全部刷新,Power Query就会自动读取Pink File的第一个工作表的G3数据,即使Pink File是关闭状态也能正常工作。你还可以设置自动刷新:右键点击加载的查询 → 连接属性 → 勾选"刷新频率"并设置间隔时间。

总结

  • 如果你经常打开Pink File,用方法一的公式最便捷
  • 如果需要处理关闭的工作簿或不想用宏,优先选Power Query方案

内容的提问来源于stack exchange,提问作者12fretter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:53:03