当我们有一张表里面有很多sheet 具有相同的表结构,如果需要汇总到一张表中,那么我们可以借助VBA 去实现汇总自动化
Sub 复制所有工作表内容()
Dim ws As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
' 设置目标表格,即要将所有工作表内容复制到的表格
Set targetSheet = ThisWorkbook.Sheets("汇总")
' 清除目标表格中已有的数据
targetSheet.Rows("2:1000000").Clear
' 添加目标表格的表头
targetSheet.Range("A1:C1").Value = ThisWorkbook.Sheets("汇总").Range("A1:C1").Value
' 循环遍历每个工作表
For Each ws In ThisWorkbook.Sheets
' 排除指定的工作表
If ws.Name <> "汇总" Then
' 获取源工作表最后一行的行号
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 复制源工作表的 A 到 M 列内容到目标表格中的下一行
ws.Range("A2:M" & lastRow).Copy targetSheet.Cells(targetSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1, "A")
End If
Next ws
MsgBox "所有工作表内容已复制到目标表格中!", vbInformation
End Sub
运行结果如下: