Excel 2010 VBA帮助复制列的范围

我的代码几乎按照需要工作。 它检查所有表单中的“F”列中的某个值,然后将其关联的行复制到活动表单中。 我可以让代码复制整行,单数列“A”或顺序范围“A:C”。 我似乎无法使它复制像“A”“C”和“F”这样的特定列,这是我需要做的。

Public Sub List() Dim ws As Worksheet Dim i As Integer ActiveSheet.Rows("3:" & ActiveSheet.Rows.Count).Clear Selection.Clear For Each ws In Worksheets If ws.Name <> ActiveSheet.Name Then For i = 1 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row If ws.Cells(i, "F").Value = "Pending" Then ws.Cells(i, "A").Columns("A:D").Copy Destination:=ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) End If Next End If Next 

从评论到问题如下,正确的答案是使用以下行:

 ws.Range("A" & i & ", C" & i & ", E" & i).Copy Destination:=ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 

代替

 ws.Cells(i, "A").Columns("A:D").Copy Destination:=ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)