我一直在寻找解决方案,但无论我尝试什么,我都会收到错误。
我有大约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
但每次我得到错误运行时'1004'突出显示此行
copyRange.Copy Destination:=shReport.Range("A" & lRow)
有任何帮助吗?
答案 0 :(得分:0)
试试这个快速修复:
Set copyRange = Intersect(sh.UsedRange, sh.Range("A:B,D:D,F:F,J:K,L:L,BK:BK,GA:GB,GF:GF"))