使用粘贴将单元格值从一个工作表复制到另一个工作表

时间:2014-11-19 16:44:41

标签: excel vba excel-vba

您好我正在尝试创建一个宏,它将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

欢迎任何帮助。

1 个答案:

答案 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属性为指定的RangeRow返回ColumnFor循环的每一步都会添加2以获取Sheet1的值,并将{4}添加到Destination_Row以将值粘贴到Sheet2