在Excel中,如果你想要将新增工作表的数据自动汇总到总表,可以使用VBA(Visual Basic for Applications)编程来实现。VBA是一种强大的编程语言,可以让你自动化Excel中的各种任务。
以下是一个简单的VBA示例,展示如何将新增工作表的数据自动汇总到总表:
1. "打开Excel文件",然后按 `Alt + F11` 打开VBA编辑器。
2. 在VBA编辑器中,右键点击工作簿名称,选择 `插入` -> `模块`,创建一个新的模块。
3. 在新模块中,复制并粘贴以下VBA代码:
```vba
Sub AutoSummarizeNewSheet()
Dim ws As Worksheet
Dim summaryWs As Worksheet
Dim lastRow As Long
Dim sourceLastRow As Long
Dim sourceRange As Range
Dim targetRange As Range
' 设置总表的工作表名称
Dim summarySheetName As String
summarySheetName = "Summary"
' 检查总表是否存在,如果不存在则创建
On Error Resume Next
Set summaryWs = ThisWorkbook.Sheets(summarySheetName)
If summaryWs Is Nothing Then
Set summaryWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
summaryWs.Name = summarySheetName
' 在总表中添加标题行
summaryWs.Cells(
在整理工作簿数据时,我们可能会遇到这样的需求,要在一张工作表中汇总其它工作表中的所有数据,并且在新增工作表时,新增工作表中的数据也能自动添加到汇总工作表中。
比如,在下图所示工作簿中,第一张“汇总表”用于汇总“1月”“2月”“3月”中的所有数据记录,且后续新增“4月”工作表时,希望“4月”工作表中的数据能自动添加到“汇总表”中。
要实现上述需求,我们需要在工作簿中添加一张辅助工作表,辅助表要放在所有工作表之后,以后新月份的数据表需放在辅助表之前。辅助表中不输入任何内容。
建好辅助表后,回到“汇总表”,“汇总表”的第一行为标题行,与“1月”“2月”“3月”等其它工作表的标题行内容一致。
接下来选中“汇总表”的A2单元格,输入公式:=VSTACK('1月:辅助表'!A2:C7),按回车键确认,即可返回所有月份的汇总数据。
公式说明:
VSTACK是一个数组拼接函数,能以逐行方式对参数中的数组进行拼接。公式=VSTACK('1月:辅助表'!A2:C7)意思就是对“1月”到“辅助表”之间所有工作表中A2:C7单元格区域中的数据进行逐行拼接。
接下来在“辅助表”前面新增“4月”工作表,“4月”工作表中的数据就会自动添加到“汇总表”中。
补充说明:
“汇总表”中最下面为0的数据对应的是“辅助表”A2:C7单元格区域。“辅助表”是一张空工作表,里面没有填充任何数据,VSTACK在处理数据时,空单元格均以0计。
本文演示环境:
硬件型号:华硕X1603ZA;软件版本:Windows11;APP版本:WPS 表格(12.1.0.20784)
你学会了吗?更多实用办公技巧,欢迎关注账号@静心办公,在个人主页学习!