Excel汇总多个页卡数据到一个页卡

首先新建一个页卡放到最前面,页卡处右键,选择查看代码,选择需要汇总的页卡,输入以下代码,运行即可:

1.如果需要把全部数据都汇总到一个页卡

Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 4 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub

2.如果不需要表头,只要内容(表头位置修改Range("A4"),子页卡内容位置:Range("B5")):

Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 4 To Sheets.Count
    With Sheets(j)
        If .Name <> ActiveSheet.Name Then
            x = Range("A65536").End(xlUp).Row
            If Range("A4") = "" Then .UsedRange.Copy Cells(x, 1) Else _
              .Range(.Range("B5"), .UsedRange.Cells(.UsedRange.Count)).Copy Cells(x + 1, 1)
        End If
    End With
Next
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub

说明:

.UsedRange.Copy:复制第1张工作表中已使用的区域
.Cells(.Range("A65536").End(xlUp).Row, 1):粘贴目标起始单元格
.Range("A65536"):工作表A列最后一行
.End(xlUp):等同于按键 End+ 向上键,返回从A列最后一行向上,找到的第一个空白单元格。
.Row:返回该单元格的行号

 附:EXCEL Range用法集 http://blog.sina.com.cn/s/blog_5a6f28090101iwmy.html

原文地址:https://www.cnblogs.com/huzhenchao/p/6956295.html