VBA-应用筛选器以显示从今天开始的特定日期的记录';日期

VBA-应用筛选器以显示从今天开始的特定日期的记录';日期,vba,excel,Vba,Excel,我有一个日期过滤器,用于显示除前几天记录外的所有记录,然后在应用过滤器后删除“特殊/可见”单元格。这允许我只查看前一天的数据 以下是应用过滤器的代码行: .Columns(iCol).AutoFilter Field:=1, Criteria1:="<>" & CLng(DateAdd("d", -1, Date)) .Columns(iCol).AutoFilter字段:=1,标准1:=“”&CLng(日期添加(“d”,-1,日期)) 我已经意识到,这个宏不会在周末运行

我有一个日期过滤器,用于显示除前几天记录外的所有记录,然后在应用过滤器后删除“特殊/可见”单元格。这允许我只查看前一天的数据

以下是应用过滤器的代码行:

.Columns(iCol).AutoFilter Field:=1, Criteria1:="<>" & CLng(DateAdd("d", -1, Date))
.Columns(iCol).AutoFilter字段:=1,标准1:=“”&CLng(日期添加(“d”,-1,日期))
我已经意识到,这个宏不会在周末运行,所以在周一你需要显示周五、周六和周日的记录

我认为这会起作用:

.Columns(iCol).AutoFilter Field:=1, Criteria1:="<>" & CLng(DateAdd("d", -1, Date)) & CLng(DateAdd("d", -2, Date)) & CLng(DateAdd("d", -3, Date))
.Columns(iCol).AutoFilter字段:=1,准则1:=”&CLng(日期添加(“d”、-1,日期))&CLng(日期添加(“d”、-2,日期))&CLng(日期添加(“d”、-3,日期))
但是,它不起作用。。这几乎就像过滤器只查找前一天,而不包括其他2天作为“标准”

我知道周五有数据,所以删除后,应该会显示数据,但是,所有记录都会被删除


注意:我可以在我的标题中明确指出要查找3天,但如果3天变成4天、5天或6天等等,我希望能够再次使用此代码。

.Columns(iCol)。自动筛选字段:=1,标准1:“
.Columns(iCol)。自动筛选字段:=1,标准1:=”您可以添加其他条件以从星期一搜索中删除星期一:

 .Columns(iCol).AutoFilter Field:=1, Criteria1:="<" &  CLng(DateAdd("d", -3, Date))
Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", -3, Date)), Criteria2:="<>" & CLng(DateAdd("d", 0, Date))
Sheets(“Sheet3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”),标准2:=”&CLng(日期添加(“d”,0,日期))
下面是我制作的一个示例的代码:

Sub newnew()

    Dim iCol As Range
        Set iCol = Sheets("Sheet2").Range("A10:B115")

    Debug.Print CLng(DateAdd("d", 0, Date))

    If Weekday(Now()) = vbMonday Then
        Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", -3, Date)), Criteria2:="<>" & CLng(DateAdd("d", 0, Date))
    Else
        Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", 1, Date))
    End If

End Sub
subnewnew()
Dim iCol As系列
设置iCol=板材(“板材2”)。范围(“A10:B115”)
调试.打印CLng(日期添加(“d”,0,日期))
如果工作日(Now())=星期一,则
工作表(“Sheet3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”),-3,日期)),标准2:=”&CLng(日期添加(“d”,0,日期))
其他的
工作表(“工作表3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”,1,日期))
如果结束
端接头


您可以添加其他条件以从周一搜索中删除周一:

Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", -3, Date)), Criteria2:="<>" & CLng(DateAdd("d", 0, Date))
Sheets(“Sheet3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”),标准2:=”&CLng(日期添加(“d”,0,日期))
下面是我制作的一个示例的代码:

Sub newnew()

    Dim iCol As Range
        Set iCol = Sheets("Sheet2").Range("A10:B115")

    Debug.Print CLng(DateAdd("d", 0, Date))

    If Weekday(Now()) = vbMonday Then
        Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", -3, Date)), Criteria2:="<>" & CLng(DateAdd("d", 0, Date))
    Else
        Sheets("Sheet3").Range("A1:A10").AutoFilter Field:=1, Criteria1:=">" & CLng(DateAdd("d", 1, Date))
    End If

End Sub
subnewnew()
Dim iCol As系列
设置iCol=板材(“板材2”)。范围(“A10:B115”)
调试.打印CLng(日期添加(“d”,0,日期))
如果工作日(Now())=星期一,则
工作表(“Sheet3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”),-3,日期)),标准2:=”&CLng(日期添加(“d”,0,日期))
其他的
工作表(“工作表3”)。范围(“A1:A10”)。自动筛选字段:=1,标准1:=“>”&CLng(日期添加(“d”,1,日期))
如果结束
端接头


谢谢,这很有效。。但它也显示了今天(星期一)的日期。。所以我需要今天被排除在外,只需要看周五-周日。。也许你能帮忙吗?谢谢,这很有效。。但它也显示了今天(星期一)的日期。。所以我需要今天被排除在外,只需要看周五-周日。。你能帮忙吗?