怎么把excel不同sheet里的东西放到同一个sheet

2025-03-09 22:35:25
推荐回答(3个)
回答1:

我看你所有的表格都是数字命名。可以试试运行以下代码。打开表格,按下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

回答2:

不知道常规方法怎么做,给你一个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

回答3:

“不要复制粘贴”就用VBA。设置后可一键搞定。