我正在尝试使用AutoFilter
根据来自DTPicker
的日期值过滤掉结果。
例如,我从DTPicker1
选择9月1日,如下所示:
然后在VBA
代码中,我这样做:
Worksheets("WS_Name").Range("A5:L5").AutoFilter _
field:=3, _
Criteria1:=">" & DTPicker1.Value, _
然后过滤器奇怪地应用到1月9日而不是9月1日。因此,使用格式DD/MM/YYYY
,它会应用于09/01/2013
而不是01/09/2014
我检查了操作系统上的日历设置,并且设置正确。
还要确保使用DTPicker1.Value
MsgBox DTPicker1.Value
那么为什么AutoFilter
表现得像这样呢?如何强制它以DD/MM/YYYY
?
答案 0 :(得分:3)
我认为VBA only understands American Date Format。
因此,请尝试将DTPicker1
中的日期值转换为美国日期格式,如此。
Worksheets("WS_Name").Range("A5:L5").AutoFilter _
field:=3, _
Criteria1:=">" & Format(DTPicker1.Value, "mm/dd/yyyy"), _