如何将特定列从一行复制到另一张表

时间:2018-07-31 19:20:27

标签: vba excel-vba

基本上,我正在编译报告,并且可以按正确的顺序将每一行复制到另一张纸上,但是我不需要每一行的每一列。每行42列中只需3列即可转移到新工作表。到目前为止,这是我的代码:

For k = 2 To coor2(2)
 If Cells(k, 5).Value > Cells(k, 16).Value Then
 Cells(k, 5).EntireRow.Copy Sheets("test").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
 End If
Next k

2 个答案:

答案 0 :(得分:0)

For k = 2 To coor2(2)
 If Cells(k, 5).Value > Cells(k, 16).Value Then 
     With Sheets("test").Range("A" & Rows.Count).End(xlUp)
         Cells(k, 5).Copy .Offset(1, 0)
         Cells(k, 7).Copy .Offset(1, 1)
         Cells(k, 9).Copy .Offset(1, 2)
     End With
 End If
Next k

答案 1 :(得分:0)

Tim几乎具有复制单个单元格的要点...将列出我评论中列出的所有3个变体。

1)对于整行:

Sheets("Source").Rows(k).Copy Sheets("Destination").Rows(lastrow+1)

2)对于特定的单元格(或非连续范围)

Sheets("Source").Cells(k,3).Copy Sheets("Destination").Cells(lastrow+1,1)
Sheets("Source").Cells(k,5).Copy Sheets("Destination").Cells(lastrow+1,2)
Sheets("Source").Cells(k,7).Copy Sheets("Destination").Cells(lastrow+1,3)

3)对于连续范围

Sheets("Source").Range(Sheets("Source").Cells(k,3),Sheets("Source").Cells(k,7)).Copy Sheets("Destination").Range(Sheets("Destination").Cells(k,1),Sheets("Destination").Cells(k,5))

在每种情况下,假定您先前都找到了目标工作表的最后一行,并粘贴到了最后一行之后。