【问题标题】:How do I change my filter then copying all data shown如何更改过滤器然后复制显示的所有数据
【发布时间】:2015-05-29 10:53:06
【问题描述】:

我有一个 Excel 工作表,其中包含大量表格形式的数据。这是想要做什么的宏记录

    ActiveSheet.Range("$A$1:$M$2735").AutoFilter Field:=1, Criteria1:= _
    "2015-05-28"
    Range("A2618").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

我遇到的问题是它为自动过滤范围提供了特定的单元格(我想将此应用于可能具有不同行数/列数的不同表)

我还想在过滤数据后只选择左上角的单元格,这段代码通过命名它来实现。之后,我想选择表中的所有数据并复制它。我知道这与 Range("A1").CurrentRegion 有关,但我不知道如何实现。

我的代码遇到的另一个问题是使用与今天日期相关的日期过滤结果。例如,我想过滤到昨天的日期,然后是 3 天前的日期,然后是上周的日期。

抱歉,这是帖子中的 3 个问题,但我们将不胜感激

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    VBA 将表格视为列表对象,因此如果您想在工作表中引用表格,可以使用:Sheets(i).ListObjects(1).Range

    过滤后选择整张表:Sheets(i).ListObjects(1).Range.SpecialCells(xlCellTypeVisible).Select

    将过滤器设置为昨天:Sheets(i).ListObjects(1).Range.AutoFilter Field:=1, Criteria:=format(date()-1,"yyyy-mm-dd")

    【讨论】:

    • 感谢这有很大帮助!不过,我还有另一个问题:) 如何在设置为昨天的过滤器中添加更多日期,会是:criteria:=format(date()-1,"yyyy-mm-dd")(date()- 2“yyyy-mm-dd”)等?我想问的是如何格式化代码,以便我可以让它在昨天过滤,然后是昨天+2天前,然后是过去一周。
    • “那么”对您来说意味着什么?同时显示小时列出的值(看这里:stackoverflow.com/a/18135388/4721734)或者您是否希望宏从一个更改为另一个(在这种情况下,将您的值存储在上一个链接中的数组中并使用 @ 循环遍历它们987654325@)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多