Excel中的Excel过滤和复制

时间:2012-12-19 15:31:03

标签: vba excel-vba filter excel-2003 excel

我正在开发一个VBA脚本,它从Access中提取一系列日期,然后过滤数据并根据过滤后的数据创建图表。过滤后的数据将进入单独的工作表,图表将从中提取数据。我可以使用SQL语句从Access中获取数据,但Excel中的AutoFilter错误输出。这就是我的......

    Sheet3.Range("F4:F500").AutoFilter(, "Riveter 01").Copy Destination:=Sheet2.Range("A5")

它提供了应用程序定义或对象定义的错误,我无法弄清楚原因。这是正确的方式还是有更简单的方法?

谢谢!

PS:这个过滤器将在22台独特的机器上进行,因此我计划为每台机器运行一个循环。如果这不是最快或最正确的方式,请告诉我。

2 个答案:

答案 0 :(得分:12)

您需要将其分为两部分。过滤然后复制/粘贴。见下文:

With Sheet3
    .AutoFilterMode = False
    With .Range("F4:F500")
        .AutoFilter Field:=1, Criteria1:="Riveter 01"
        .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet2.Range("A5")
    End With
End With

删除过滤器:

On Error Resume Next
    Sheet3.ShowAllData
On Error GoTo 0

On Error Resume Next用于当没有过滤器时跳过错误。请注意Sheet3和Sheet2用于寻找通用解决方案的用户。

答案 1 :(得分:0)

我认为您必须分两个步骤执行此操作:

  1. 过滤数据
  2. 将过滤后的数据复制到另一张表
  3. 这里的答案有一个很好的例子:Autofilter Macro, then copy visible data ONLY and paste to next available row