使用xlAnd和xlOr的excel自动过滤器

时间:2018-03-30 21:56:33

标签: excel excel-vba autofilter vba

我知道技术上我只能在Autofilter中有两个标准。

我也知道我可以使用数组来“添加”更多“And”或“Or”情况。

示例我发现:

             Range("A1").CurrentRegion.AutoFilter _
             Field:=1, _
             Criteria1:=Split("France#Belgium#Germany", "#"), _
             Operator:=xlFilterValues

但是,我希望将列过滤到两个日期(一年)之间的所有字段,并包含空格。

除了像我在想的那样制作一整年的每一个日期之外,还有一个更好的方法吗?

这是我尝试过的一种不起作用的变种......

 Range("A1:AV1").AutoFilter Field:=5, Criteria1:="=", Operator:=xlOr, Criteria2:=">=1/1/2018", Operator:=xlAnd, Criteria3:="<=12/31/2018"

帮助!请! 谢谢,

1 个答案:

答案 0 :(得分:0)

我不知道一系列日期太难了。

dim d as long, dts as variant
redim dts(dateserial(2019, 1, 1)-dateserial(2018, 1, 1)+1)
dts(0) = vbnullstring
for d=dateserial(2018, 1, 1) to dateserial(2018, 12, 31)
    dts(d-dateserial(2018, 1, 1)+1) = Format(d, "m/d/yyyy") '<~~should match worksheet
next d
Range("A1:AV1").AutoFilter Field:=5, Criteria1:=dts, Operator:=xlFilterValues