【问题标题】:Excel 2010 VBA Help Copying Ranges of ColumnsExcel 2010 VBA 帮助复制列的范围
【发布时间】:2014-01-24 18:49:55
【问题描述】:

我的代码几乎可以正常工作。它检查所有工作表中“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

【问题讨论】:

  • 你可以这样使用:Range("A:A,C:C,F:F").Copy Destination:=Range("H1")
  • 我以前试过这个,根据我所做的变化,我得到不同的错误 'ws.Cells(i, "A").Range("A:A,C:C,E:E ").Copy Destination:=ActiveSheet.Range("A").End(xlUp).Offset(1, 0)' 给我一个运行时错误 1004 应用程序或对象定义错误 & 'ws.Cells(i, "A ").Columns("A:A,C:C,E:E").Copy Destination:=ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)' 给出我运行时错误 13 类型不匹配
  • 当您使用Range("A:A,C:C,E:E") 时,您会尝试将值粘贴到A 列的最后一行(例如A10)。但它无法完成,因为 excel 尝试粘贴 整个 列并且没有粘贴它的地方(缺少 9 行)。如果您将Destination 更改为Destination:=Range("A1"),它将起作用。所以,最好的办法是重构你的代码..
  • 感谢您的快速回复。也许我会因为我想要它做的事情而犯错。如果在第 10 行中找到它们,我希望它检查所有工作表中“F”列中的值“待定”我希望将 A10、C10 和 E10 复制到活动工作表中。我刚刚尝试了您的建议并得到了相同的运行时 1004 错误。 'ws.Cells(i, "A").Range("A:A,C:C,E:E").Copy Destination:=Range("A1").End(xlUp).Offset(1, 0 )'
  • 试试这个:ws.Range("A" &amp; i &amp; ", C" &amp; i &amp; ", E" &amp; i).Copy Destination:=ActiveSheet.Range("A" &amp; Rows.Count).End(xlUp).Offset(1, 0)。 (ps如果有帮助,请说,我会像答案一样发布)

标签: excel vba copy range


【解决方案1】:

从 cmets 到 Question,正确答案是使用以下行:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多