【发布时间】:2016-07-27 14:53:18
【问题描述】:
我有以下代码,在 L1 中,我想选择除昨天和今天之外的所有日期,在 M1 中取消全选。我可以在 M1 中执行相同的操作,但无法在 L1 中执行操作。
Range("L1").Select
ActiveSheet.Range("$A$1:$U$3804").AutoFilter Field:=12, Operator:= _
xlFilterValues, Criteria2:=Array(1, "2/11/2016", 1, "3/31/2016", 2, "4/5/2016", 2, _
"4/6/2016", 2, "4/7/2016", 2, "4/8/2016", 2, "4/11/2016", 2, "4/12/2016", 2, "4/13/2016", _
2, "4/14/2016", 2, "4/15/2016", 2, "4/18/2016", 2, "4/19/2016", 2, "4/20/2016", 2, _
"4/21/2016", 2, "4/22/2016", 2, "4/25/2016", 0, "10/28/2015")
Range("M1").Select
ActiveSheet.Range("$A$1:$U$3804").AutoFilter Field:=13, Criteria1:="="
来自用户的评论:
我有从 A 列到 U 列的数据。我在每一列中都有许多标准可供选择。在 L 列中只有日期。我想要实现的是取消选择昨天和今天的日期并选择所有其他日期。而已。我的任务会在那里完成
【问题讨论】:
-
你不能用自动过滤来做这件事。使用字典为过滤条件构建一个数组。
-
谢谢@Jeeped 我试过这样做,但我无法将它保存到昨天和今天的日期......请帮助我提供代码。
-
没问题,但您的数据模式不清楚。 L 列是否同时包含整数和日期?您想要所有这些以及 M 列中的所有空白吗? A:U 中是否有任何列是唯一的?你可以手动完成还是无法手动完成?
-
在 L 列中只有日期值,其余的我已经完成。我想从 L 列的范围中获取未过滤的日期。我可以手动完成,但不能通过代码完成。 A:U 中没有独特的价值。
-
OK,这样您就可以成功过滤L列中的日期。如果您想“取消过滤”列 L,请使用
ActiveSheet.Range("$A$1:$U$3804").AutoFilter Field:=12(无其他参数)。
标签: vba excel date autofilter