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

如何创建随新增工作表自动添行并汇总数据的费用追踪表格?

这个需求完全可以实现,给你两种实操方案

方案一:用动态数组公式(适合Excel 365/2021及以上版本)

不用编程,输入公式就能搞定,适合不懂技术的人操作:

  1. 打开Calculations工作表,在A1单元格粘贴下面的公式,它会自动列出所有带"/"的工作表名称(自动排除Calculations自己):
=FILTER(TEXTAFTER(GET.WORKBOOK(1),"]"),TEXTAFTER(GET.WORKBOOK(1),"]")<>"Calculations")

之后新增符合命名规则的工作表时,A列的列表会自动更新。

  1. 接着在B1单元格粘贴这个公式,它会对应提取每个工作表的A1单元格内容:
=BYROW(A#:A,LAMBDA(sheet,INDIRECT("'"&sheet&"'!A1")))

注意:文件要保存为.xlsm格式(启用宏的工作簿),打开时记得启用宏,公式才能正常工作。

方案二:用VBA宏(适合所有Excel版本)

如果用的是旧版Excel,或者想要更“全自动”的效果,就用这个方法:

  1. 按Alt + F11打开VBA编辑器。
  2. 在左侧的工程列表里找到你的工作簿,右键点击ThisWorkbook,选“查看代码”。
  3. 把下面的代码粘贴进去:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim calcSheet As Worksheet
    Dim lastRow As Long
    
    ' 只处理名字带"/"的工作表
    If InStr(Sh.Name, "/") = 0 Then Exit Sub
    
    Set calcSheet = ThisWorkbook.Worksheets("Calculations")
    
    ' 找到Calculations表的最后一行
    lastRow = calcSheet.Cells(calcSheet.Rows.Count, "A").End(xlUp).Row
    If lastRow = 1 And calcSheet.Cells(1, "A").Value = "" Then lastRow = 0
    
    ' 写入数据
    calcSheet.Cells(lastRow + 1, "A").Value = Sh.Name
    calcSheet.Cells(lastRow + 1, "B").Value = Sh.Range("A1").Value
End Sub
  1. 保存文件为.xlsm格式,以后每次新增带"/"的工作表,Calculations表都会自动新增一行,把工作表名和A1的内容填进去。

小提醒

不管用哪种方法,都得把文件存成.xlsm格式,不然公式或宏没法正常运行。要是你父亲操作的话,方案一上手更简单,输一次公式就完事;方案二设置一次后,完全不用再管,新增表自动同步数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:38:15