如何在过去三天内在VBA中过滤?

时间:2016-02-11 14:16:29

标签: excel vba excel-vba

我使用VBA EXCEL,我需要过滤最后3天的行。 例如:今天它是02.11,我不想看到11.02,10.02和09.02天。

我试图用宏来做到这一点:

ActiveSheet.Range("$A$1:$AB$11153").AutoFilter Field:=10, Operator:= _
    xlFilterValues, Criteria2:=Array(2, "1/12/2016", 2, "1/13/2016", 2, "1/17/2016", 2, _
    "1/18/2016", 2, "1/20/2016", 2, "1/21/2016", 2, "1/22/2016", 2, "1/23/2016", 0, _
    "12/21/2015")

但它是痉挛日,我需要过去三天?

1 个答案:

答案 0 :(得分:0)

构建AutoFilter method标准的关键是要意识到它必须是一个字符串。如果您要比较日期,则您提供的日期必须与您要比较的日期格式相同。即使是显示为 m / d / yyyy 的标准与显示为 mm / dd / yyyy 的值之间的微小差异也足以产生不可靠的结果。

With Worksheets("Sheet2")
    If .AutoFilterMode Then .AutoFilterMode = False
    With .Cells(1, 1).CurrentRegion
        .Columns(10).AutoFilter Field:=1, _
            Criteria1:=Chr(62) & Format(Date - 3, .Cells(2, 10).NumberFormat)
    End With
End With

使用此过滤器,我们使用过滤列第二行中的单元格格式(例如Range.NumberFormat property)构建日期条件。