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

如何在Excel各工作表相同单元格批量输入公式返回对应工作表名称

批量设置Excel各工作表C2显示对应工作表名称的解决方法

问题原因

你使用的原公式=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))未指定CELL函数的引用单元格,批量选中工作表输入后,所有单元格都会读取当前活动工作表的文件名,导致显示同一个名称。

解决方法

方法1:修改原公式,绑定当前单元格

选中所有目标工作表(按住Ctrl+Shift点击首尾工作表标签),在C2单元格输入以下公式,按回车即可:

=RIGHT(CELL("filename",C2),LEN(CELL("filename",C2))-FIND("]",CELL("filename",C2)))

原理:给CELL函数添加当前单元格C2作为引用参数,强制每个工作表的公式读取自身所在表的文件名,而非活动表的信息。

方法2:使用自定义名称统一管理

  1. 按下Ctrl+F3打开「名称管理器」,点击「新建」
  2. 名称栏输入SheetName,引用位置输入:
    =RIGHT(CELL("filename",!A1),LEN(CELL("filename",!A1))-FIND("]",CELL("filename",!A1)))
    
    点击「确定」保存名称
  3. 选中所有工作表,在C2输入=SheetName并回车,每个工作表的C2会自动显示对应名称

方法3:VBA批量设置(静态/动态可选)

如果需要一次性完成且可选静态文本(不随表名修改更新)或动态公式(随表名修改自动更新),可以用VBA:

  1. 按下Alt+F11打开VBA编辑器,右键左侧工程窗口的工作簿名称→「插入」→「模块」
  2. 粘贴以下代码:
    Sub SetSheetNameToC2()
        Dim ws As Worksheet
        For Each ws In ThisWorkbook.Worksheets
            ' 动态公式(随表名修改自动更新)
            ws.Range("C2").Formula = "=RIGHT(CELL(""filename""),LEN(CELL(""filename""))-FIND(""]"",CELL(""filename"")))"
            ' 静态文本(直接赋值表名,不自动更新)
            ' ws.Range("C2").Value = ws.Name
        Next ws
    End Sub
    
  3. 按F5运行代码,所有工作表的C2会自动填充对应名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:56:09