VBA Excel Copy/Paste 来自多个工作表的特定范围

VBA Excel Copy/Paste Specific Range from multiple worksheet

我一直在网上寻找解决方案,但无论我尝试什么,我总是收到错误消息。

我有大约 20 个工作表,我想为每个工作表复制相同的范围并将它们合并到另一个工作表以创建一个报告。

我能够在下面修改此解决方案,但它仍然无法正常工作,我不知道为什么。

感谢任何帮助。

Sub forReport()

   Dim lRow As Long
   Dim copyRange As Range
    Dim sh As Worksheet
    Dim shReport As Worksheet
    Set shReport = ThisWorkbook.Worksheets("ALLProjectForReport")

    For Each sh In ThisWorkbook.Worksheets
        Select Case sh.Name
            Case Is <> "ALLProjectForReport"
                lRow = shReport.Cells(Rows.count, "A").End(xlUp).Row + 1
               Set copyRange = sh.Range("A:B,D:D,F:F,J:K,L:L,BK:BK,GA:GB,GF:GF")

               copyRange.Copy Destination:=shReport.Range("A" & lRow)                    

        End Select
    Next
    Set shReport = Nothing
    Set sh = Nothing
End Sub

但是每次我得到一个错误 运行-time '1004' 突出显示这一行

 copyRange.Copy Destination:=shReport.Range("A" & lRow)

有什么帮助吗?

试试这个快速修复:

Set copyRange = Intersect(sh.UsedRange, sh.Range("A:B,D:D,F:F,J:K,L:L,BK:BK,GA:GB,GF:GF"))