自动过滤范围不包括两个日期

时间:2016-07-27 14:53:19

标签: excel vba excel-vba date autofilter

我有以下代码,在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列中只有日期。我想要实现的是取消选择昨天和今天的日期并选择所有其他日期。而已。我的任务将在那里完成

1 个答案:

答案 0 :(得分:0)

  

在L栏中只有日期。我想要实现的是取消选择昨天和今天的日期并选择所有其他日期。而已。功能

过滤所有今天或昨天的日期。

Option Explicit

Sub notTodayOrYesterday()
    With Worksheets("Sheet5")
        If .AutoFilterMode Then .AutoFilterMode = False
        With .Cells(1, 1).CurrentRegion
            .AutoFilter Field:=12, Criteria1:=Format(Date, "\<\>mm/dd/yyyy"), _
                        Operator:=xlAnd, Criteria2:=Format(Date - 1, "\<\>mm/dd/yyyy")
        End With
        If .AutoFilterMode Then .AutoFilterMode = False
    End With
End Sub

请注意,这是在具有MDY区域设置的计算机系统上测试的。如果它不适合您并且您的系统是DMY,请更改日期格式。

not_today_yesterday 自动过滤之前

not_today_yesterday 自动过滤后应用(在End Sub之前)