从所有工作表复制到主工作表的范围

时间:2019-01-10 18:13:44

标签: excel vba

我的工作簿中有20张纸,我想将修复范围L3到L7复制到我的MasterSheet。对于所有工作表,我的复制来源范围都是相同的,即L3到L7,但目标是b2到f2,b3到f3,b4到f4,依此类推。

这是我编写的代码,但我必须提供动态目标范围。 所以我应该怎么做,除此之外。

Sub test1()
    Dim x As Integer
    For x = 1 To Worksheets.count
        Cells(x, 1).Value = Worksheets(x).Name
        Worksheets("MasterSheet").Range("b2").Value = Worksheets(x).Name.Range("l3").Value
        Worksheets("MasterSheet").Range("c2").Value = Worksheets(x).Name.Range("l4").Value
        Worksheets("MasterSheet").Range("d2").Value = Worksheets(x).Name.Range("l5").Value
        Worksheets("MasterSheet").Range("e2").Value = Worksheets(x).Name.Range("l6").Value
        Worksheets("MasterSheet").Range("f2").Value = Worksheets(x).Name.Range("l7").Value
    Next x
End Sub

1 个答案:

答案 0 :(得分:0)

一种选择是使用Offset在每张连续的纸上向下移动一行。

类似这样的东西:

Sub test1()
    Dim counter As Integer
    Dim ws As Worksheet, masterWS As Worksheet

    Set masterWS = Worksheets("MasterSheet")

    For Each ws In Worksheets
        If ws.Name <> "MasterSheet" Then
            counter = counter + 1
            masterWS.Range("A1").Offset(counter).Value = ws.Name
            masterWS.Range("B1:F1").Offset(counter).Value = Application.Transpose(ws.Range("L3:L7").Value)
        End If
    Next ws
End Sub