Excel VBA 复制除指定工作表外所有的工作表的内容到一张工作表中

当我们有一张表里面有很多sheet 具有相同的表结构,如果需要汇总到一张表中,那么我们可以借助VBA 去实现汇总自动化
Excel VBA 复制除指定工作表外所有的工作表的内容到一张工作表中_第1张图片

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

运行结果如下:
Excel VBA 复制除指定工作表外所有的工作表的内容到一张工作表中_第2张图片

你可能感兴趣的:(VBA,_,Excel,&,PPT,excel,VBA)