使用 VBA 将多张表中的数据复制到一张表中,其中数据被复制到不同的行中

使用 VBA 将多张表中的数据复制到一张表中,其中数据被复制到不同的行中

我正在尝试使用 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:E1Sheet2Sheet7 A2:E2

答案1

  1. 你需要限定你正在处理的工作表

  2. 您需要为要粘贴数据的行保留一个行计数器

  3. 无需复制,您可以直接分配值

  4. 您需要检查工作表名称以避免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
    

相关内容