我的工作簿中有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
答案 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