如何按date筛选行

我是VBA Excel新手。 我想select其他列中的关联date在一定范围内的特定列中的所有值。

我进入AutoFilter似乎进展不顺利。 此代码筛选date在正确的范围,但我不能让它包括第一行:

Columns("B:B").AutoFilter Field:=1, _ Criteria1:=">=" & startDate, _ Operator:=xlAnd, _ Criteria2:="<=" & endDate, _ VisibleDropDown:=False 

我不清楚使用“字段”参数。 另外,MS文档声称“Field”是Varianttypes的一个可选参数,但它仍然是Integer,但是Excel VBA编辑器会抱怨,如果我不使用它的话。

field是您要应用filter的列。 由于您正在使用单个列(例如Columns("B:B") ),所以必须是1 。 即B列是B列中唯一的1列,所以它是Field:=1

[Optional]可能不是描述AutoFilter方法的field参数的最佳方法,但由于您可以自己使用.AutoFilter带参数来重置filter,所以严格来说所有参数都是可选的。 但是,当您应用标准并且文档应该可能反映这一点时,它不是可选的。

 with Columns(2) 'turn .AutoFilter on .AutoFilter Field:=1, Criteria1:=">=" & startDate, _ Operator:=xlAnd, Criteria2:="<=" & endDate, _ VisibleDropDown:=False 'do stuff here 'turn .AutoFilter off .AutoFilter End With 

您可以添加另一个自动filter来进一步优化您的结果,如下所示:

 ''1st criteria for the dates Sheets("Your sheet").range("Your range").autofilter field =1,Criteria1:=">=" & startDate, Operator:=xlAnd, Criteria2:="<=" & endDate ''2nd Criteria for text in field 2 for eg Sheets("Your sheet").range("Your range").autofilter field =2,Criteria1:="text"