我一直在VBA中为excel编写代码,但却无法使其工作....我想将Sheet1中的单元格复制到其他工作表中的单元格中,每张工作表中需要不同的单元格复制到。
Sub copy()
For i=2 To 4
For k=0 To 10 Step 5
Sheets("1").Cells((2+i,1),(6+i;12)).Copy Destination:=Sheets(i).Range("A2:L6")
Next k
Next i
End Sub
答案 0 :(得分:1)
不要复制和粘贴,只需设置一个等于另一个的范围,就像这样
Sub copy()
For i = 2 To 4
Sheets(i).Range(Sheets(i).Cells(2+i,1), Sheets(i).Cells(6+i,12)) = Worksheets("Sheet1").Range("A2:L6")
Next i
End Sub
另外,我删除了内部循环,k
没有被使用,你有一个分号,我假设你有一个逗号。并且很难说出你要完成什么,因为你将改变你用循环将数据放在每张纸上的行。所以,您可能不希望在单元格引用中使用i
。在这种情况下,请尝试使用
Sub copy()
For i = 2 To 4
Sheets(i).Range("A2:L6") = Worksheets("Sheet1").Range("A2:L6")
Next i
End Sub
答案 1 :(得分:0)
假设您要将sheet1上的单元格A2:L6复制到工作表2上的A2:L6,工作表1上的A7:L11:工作表3上的A6:工作表1上的A6:L16:工作表4上的A6:L6,那么这应该做它:
Worksheets("Sheet2").Range("A2:L6").Value = Worksheets("Sheet1").Range("A2:L6").Value
Worksheets("Sheet3").Range("A2:L6").Value = Worksheets("Sheet1").Range("A7:L11").Value
Worksheets("Sheet4").Range("A2:L6").Value = Worksheets("Sheet1").Range("A12:L16").Value
或者如果您更喜欢使用循环来将其扩展到Sheet5及更高版本:
For i = 2 To 4
Worksheets("Sheet" & i).Range("A2:L6").Value = Worksheets("Sheet1").Range(Cells((i - 2) * 5 + 2, 1), Cells((i - 2) * 5 + 7, 12)).Value
Next i
请注意,仍然不需要&#39; <&#39;