我想用VBA代码过滤日期列,但结果却是错误的。
我的数据(仅限示例,我有很多行):
complete_date
(blank)
(blank)
(blank)
(blank)
(blank)
(blank)
5/12/18 9:08 AM
5/12/18 9:41 AM
5/20/18 1:51 PM
(blank)
(blank)
(blank)
(blank)
5/20/18 1:50 PM
5/20/18 1:52 PM
5/21/18 6:35 AM
5/20/18 1:49 PM
5/20/18 1:54 PM
5/21/18 7:53 AM
5/20/18 1:49 PM
5/20/18 1:56 PM
5/21/18 11:20 AM
5/20/18 1:49 PM
我的代码:
Public Sub MyFilter()
Dim lngStart As Long, lngEnd As Long
lngStart = Range("b1").Value 'assume this is the start date
lngEnd = Range("b2").Value 'assume this is the end date
Range("q:q").AutoFilter field:=1, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd
End Sub
对于此示例,如果我根据以下日期过滤我没有得到所有可能的结果(我没有看到5/20天的任何结果)。 我的搜索:
5/20/18 13:51 ---&gt;开始时间 5/22/18 13:51 ---&gt;结束时间
知道为什么吗?谢谢,
答案 0 :(得分:0)
应该在日期而不是字符串之间进行比较,假设您的列Q
和2个输入单元格被格式化为日期
只需将您的代码更改为
即可Dim lngStart As date, lngEnd As date