将多个工作表中的多个行复制到一个工作表

时间:2012-06-04 19:45:08

标签: excel vba loops excel-vba

我每天都会收到一份工作簿,在每页的可变页面上列出50行信息,具体取决于总共有多少行。

如何将每页50行复制到一个主列表中?

从录制宏我得到

Sub Macro2()  
    Sheets("Page1_2").Select
    Rows("5:54").Select
    Selection.Copy
    Sheets("Page1_1").Select
    Range("A56").Select
    ActiveSheet.Paste
End Sub

但是我需要它来遍历整个工作簿。我无法找到一种方法将每次迭代的纸张选择增加1,粘贴范围增加50。

任何帮助?

1 个答案:

答案 0 :(得分:1)

怎么样:

Sub test()

    Dim curRow As Integer
    Dim activeWorksheet As Worksheet
    Set activeWorksheet = ActiveSheet
    curRow = 1
    For Each ws In ActiveWorkbook.Worksheets
        If Not ws.Name = activeWorksheet.Name Then
            ws.Range("5:54").Copy Destination:=activeWorksheet.Range(CStr(curRow) & ":" & CStr(curRow + 49))

            curRow = curRow + 50
        End If
    Next ws

End Sub

它遍历工作簿中的所有工作表,并将内容复制到当前活动工作表。循环排除当前活动工作表。它假定您尝试聚合的内容始终位于第5行到第54行。