我看你所有的表格都是数字命名。可以试试运行以下代码。打开表格,按下Alt+F11键打开VBE编辑器,插入一个模块,粘贴以下代码。然后按F5键运行即可
Sub test()
Dim x As Integer, i As Integer, y As Integer, sh As Worksheet, k As Integer
Set sh = Sheets.Add
sh.Name = "汇总表"
y = Sheets.Count - 1
For i = 1 To y
x = Sheets("汇总表").Range("a65536").End(xlUp).Row
k = Sheets("sheet" & i).Range("a65536").End(xlUp).Row
If x < 6 Then
Sheets("sheet" & i).UsedRange.Copy Sheets("汇总表").Range("A" & x + 1)
Else
Sheets("sheet" & i).Rows("6:" & k).Copy Sheets("汇总表").Range("A" & x + 1)
End If
Next i
End Sub
不知道常规方法怎么做,给你一个VBA方案,你在工作表状态下,同时按下“Alt + F11”组合键,打开了VBE编辑窗口,在工具栏上选择“插入 - 模块”,然后将下面的代码复制到该模块下。然后运行宏"AllInOne"即可完成自动汇总!
Public Sub AllInOne()
Dim sh As Worksheet
Dim s As Worksheet, i As Long, n As Long
On Error Resume Next
Set sh = Sheets("AllInMe")
If sh Is Nothing Then
Set sh = Sheets.Add(Sheets(1))
sh.Name = "AllInMe"
Else
sh.Cells.ClearContents
End If
For Each s In Sheets
If s.Name <> "AllInMe" Then
i = sh.[a65536].End(3).Row + 1
If i < 6 Then s.[a1:i5].Copy sh.[a1]: i = 6
n = s.[a65536].End(3).Row
s.Range("A6:I" & n).Copy sh.Cells(i, "A")
End If
Next
End Sub
“不要复制粘贴”就用VBA。设置后可一键搞定。