繁体   English   中英

VBA中的Excel过滤和复制

[英]Excel Filtering and Copying in VBA

我正在处理一个 VBA 脚本,该脚本从 Access 中提取一系列日期,然后过滤数据并根据过滤后的数据创建图表。 过滤后的数据将转到单独的工作表,图表将从中提取其数据。 我可以使用 SQL 语句从 Access 中获取数据,但是我在 Excel 中的自动AutoFilter出错了。 这是我所拥有的...

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

它给出了应用程序定义或对象定义的错误,我不知道为什么。 这是正确的方法还是有更简单的方法?

PS:这个过滤器将在 22 台不同的机器上发生,所以我计划为每台机器运行一个循环。 如果这不是最快或正确的方法,请告诉我。

你需要把它分成两部分。 过滤然后复制/粘贴。 见下文:

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 对于那些寻找通用解决方案的人的使用。

我认为您必须分 2 个单独的步骤执行此操作:

  1. 过滤数据
  2. 将过滤后的数据复制到另一个工作表

这里的答案有一个很好的例子来说明如何做到这一点:自动过滤宏,然后仅复制可见数据并粘贴到下一个可用行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM