Excel VBA-使用循环复制和粘贴数据

问题描述 投票:0回答:2

我正在尝试使用VBA For循环将数据从一张纸复制到另一张纸。由于某种原因,当我执行以下代码时,数据不会被复制到彼此下面的一列中,而是以一种奇怪的格式复制,如下所示。

Sub Macro2()

For i = 110 To 116
For j = 1 To 1


Worksheets("overview of contracts").Activate
Range("A" & i).Select
Selection.Copy
Worksheets("Sheet1").Activate
ActiveCell.Offset(1, 0).Range("C" & j).Select
ActiveSheet.Paste

'Worksheets("overview of contracts").Activate
'Range("B" & i).Select
'Selection.Copy
'ActiveCell.Offset(1, 0).Range("D" & j).Select
'ActiveSheet.Paste

'Range("C" & i).Select
'Selection.Copy
'ActiveCell.Offset(1, 0).Range("E" & j).Select
'ActiveSheet.Paste

 Next j
Next i

End Sub

结果:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8zR21kYi5wbmcifQ==” alt =“在此处输入图像描述”>

这是原始数据,我要实现的目标是使用完全符合该格式和顺序的循环将数据复制到另一张纸上。Sample Data

excel vba excel-vba
2个回答
0
投票

由于某些原因,当我执行以下代码时,数据无法复制到一列下]

如果不循环遍历j,它会被复制到一列中(如上所述):

For i = 110 To 116 
     Worksheets("overview of contracts").Activate
     Range("A" & i).Select
     Selection.Copy

     Worksheets("Sheet1").Activate
     ActiveCell.Range("A" & i).Select
     ActiveSheet.Paste
Next i

0
投票

我认为这就是您想要的。它获取sheet("overview of contacts")中的值,并将其值复制到C列的sheet("Sheet1")中,降序行。

Sub Macro3()
    Dim i As Long
    Dim j As Long
    j = 2
    For i = 110 To 116
        Worksheets("Sheet1").Cells(j, 3).Value = Worksheets("Overview of Contracts").Cells(i, 1).Value
        j = j + 1
    Next i
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.