在Excel VBA中过滤日期

时间:2014-04-17 12:05:46

标签: excel vba excel-vba excel-2013

我在Excel VBA中有一列包含大量日期格式为“dd.mm.yyyy hh:mm”的日期 我想仅在日期(而不是小时)之间过滤此列。由于它不使用> =和< =进行过滤(我猜是因为时间)我想尝试过滤以下方式:

  

= StartDate和<结束日期+ 1

StartDate&用户

以格式mm / dd / yyyy在文本框中输入EndDate

我尝试过滤的方式是:

 EndDate_1 = DateAdd("d", 1, EndDate)
 EndDate_1 = Format(EndDate_1, "mm/dd/yyyy")

 Selection.AutoFilter Field:=1, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<" & EndDate_1

但这不起作用(所有数据都被过滤掉,没有错误信息)

如果我只是输入

  Selection.AutoFilter Field:=1, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate

在StartDate和EndDate上没有任何格式化过滤工作(不正确,但至少它可以工作:))

我尝试了很多想但我不能让它运行! 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

"<=" & EndDate"<=" & EndDate & " 00:00:00"

相同

所以试试这个:

Selection.AutoFilter Field:=1, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate & " 23:59:59"