0

我每天都会收到一本工作簿,其中每页列出 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 的方法。

有什么帮助吗?

4

1 回答 1

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 行。

于 2012-06-04T20:22:50.227 回答