您好我正在尝试创建一个宏,它将Sheet1中的所有200个值从A1复制到A2,并将它们粘贴到Sheet 2中,但粘贴操作应该将它们以不同的方式粘贴在2列和3行空间中,例。
Sheet1(A1) => Sheet2(A1)
Sheet1(A2) => Sheet2(B1)
Sheet1(A3) => Sheet2(A5)
Sheet1(A4) => Sheet2(B5)
Sheet1(A5) => Sheet2(A9)
Sheet1(A6) => Sheet2(B9)
如您所见,间隔为+3个单元格。 到目前为止,我所做的是复制单个单元格,并需要任何帮助或建议如何从上面进行复制过程。
Sub CopySelection()
Dim xlSel As Excel.Range
Set xlSel = Excel.Application.Selection
For i = 0 To 200
xlSel.copy Excel.Application.Sheets("Sheet2").Range("A1")
Next i
End Sub
欢迎任何帮助。
答案 0 :(得分:0)
你可以这样做:
Dim Destination_Row As Integer
Destination_Row = 1
For Origin_Row = 1 To 200 Step 2
Sheet2.Cells(Destination_Row, 1).Value = Sheet1.Cells(Origin_Row, 1).Value
Sheet2.Cells(Destination_Row, 2).Value = Sheet1.Cells(Origin_Row + 1, 1).Value
Destination_Row = Destination_Row + 4
Next
Cells
属性为指定的Range
和Row
返回Column
。
For
循环的每一步都会添加2以获取Sheet1
的值,并将{4}添加到Destination_Row
以将值粘贴到Sheet2
。