我正在尝试使用 VBA 编写一个宏,其中我遍历每个工作表并将数据复制到一个主表中(Sheet7)
。
但是有多个工作表的数据在相同的范围内,我不希望数据在主工作表中重叠。因此,我尝试创建一个宏,当代码运行到每个工作表时,复制的数据会向下移动一行。到目前为止,我的代码不起作用。以下是我目前所拥有的。
Sub copyrecursive()
Dim ws As Worksheet
Dim R As Range
For Each ws In ActiveWorkbook.Worksheets
For Each R In Range("A1:E2").Rows
ws.Range("A1:E1").copy
Worksheets("Sheet7").R.PasteSpecial
Next R
Next ws
End Sub
A1:E1
所以我希望将中的范围Sheet1
复制到,然后我希望将中的Sheet7 A1:E1
范围复制到。希望这是一个足够好的解释。感谢您的帮助。A1:E1
Sheet2
Sheet7 A2:E2
答案1
你需要限定你正在处理的工作表
您需要为要粘贴数据的行保留一个行计数器
无需复制,您可以直接分配值
您需要检查工作表名称以避免
A1:E1
复制sheet7
Sub copyrecursive() Dim ws As Worksheet Dim R As Range Dim i as long i = 1 For Each ws In ActiveWorkbook.Worksheets if ws.name <> "Sheet7" then Worksheets("Sheet7").Range("A" & i & ":E" & i).value = ws.Range("A1:E1").value i = i + 1 end if Next ws End Sub