我有一张7张工作簿,但只有6张数据。所有这7张纸具有相同的结构/标题,只是最后一张纸(纸张7)是空白的。
我想编写一个代码,将A2:J15范围内的工作表1-6的内容复制到工作表7中。我目前有一个代码,我一直在测试,看它是否有效,但代码我只有一个工作表的副本和粘贴(见下文)。有什么建议吗?
在下面,我有两张表,我希望数据来自哪里,以及我想要数据的目标表:
Sub sbCopyRangeToAnotherSheet()
Sheets("Source1").Range("A1:B10").Copy
Sheets("Source2").Range("A1:B10").Copy
Sheets("Destination").Activate
Range("A1:B10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
答案 0 :(得分:1)
如评论中所述:
Sub sbCopyRangeToAnotherSheet()
Sheets("Source1").Range("A1:B10").Copy Sheets("7").Range("A1")
Sheets("Source2").Range("A1:B10").Copy Sheets("7").Range("A1").end(xlDown).offset(1,0)
Sheets("Source3").Range("A1:B10").Copy Sheets("7").Range("A1").end(xlDown).offset(1,0)
Sheets("Source4").Range("A1:B10").Copy Sheets("7").Range("A1").end(xlDown).offset(1,0)
Sheets("Source5").Range("A1:B10").Copy Sheets("7").Range("A1").end(xlDown).offset(1,0)
Sheets("Source6").Range("A1:B10").Copy Sheets("7").Range("A1").end(xlDown).offset(1,0)
End Sub
答案 1 :(得分:1)
您的问题来自于您尝试直接复制两个项目。第二个复制调用将覆盖您在第一次调用中复制的数据。
Sheets("Source1").Range("A1:B10").Copy
Sheets("Destination").Activate
Range("A1:B10").Select
ActiveSheet.Paste
Sheets("Source2").Range("<your new range here>").Copy
Sheets("Destination").Activate
Range("<your new range here>").Select
ActiveSheet.Paste
Application.CutCopyMode = False
上面的代码应该解释我的意思,虽然不是最有效的方式。更有效的方法是使用:
Sheets("Source1").Range("A1:B10").Copy Destination:=Sheets("Destination").Range("A1:B10")
Sheets("Source2").Range("A1:B10").Copy Destination:=Sheets("Destination").Range("<range>")
答案 2 :(得分:0)
假设您要按行粘贴数据(而不是覆盖它),并且您的工作表名为Source1 to Source6,那么以下内容应该有效:
Sub testSO()
For i = 1 To 6
Sheets("Source" & i).Range("A1:B10").Copy Sheets("Destination").Range("A" & Rows.Count).End(xlUp).Offset(1)
Next i
End Sub