2014-10-22 332 views
0

我尝试使用AutoFilter根据来自DTPicker的日期值筛选出结果。VBA AutoFilter区域日期格式问题

例如,我选择从DTPicker1 9月1日,如下:

enter image description here

然后在VBA代码,我这样做:

Worksheets("WS_Name").Range("A5:L5").AutoFilter _ 
field:=3, _ 
Criteria1:=">" & DTPicker1.Value, _ 

然后过滤奇怪的被应用到扬9日而不是9月1日。所以,使用格式DD/MM/YYYY,它被应用于09/01/2013而不是01/09/2014

我检查了操作系统上的日历设置,并且它们设置正确。

enter image description here

还确保了DTPicker1.Value通过使用MsgBox DTPicker1.Value

enter image description here

那么,为什么AutoFilter表现这样的格式正确?我如何强制它以DD/MM/YYYY的格式工作?

回答

3

我觉得VBA only understands American Date Format

因此,请尝试将DTPicker1中的日期值转换为美国日期格式,如此。

Worksheets("WS_Name").Range("A5:L5").AutoFilter _ 
field:=3, _ 
Criteria1:=">" & Format(DTPicker1.Value, "mm/dd/yyyy"), _ 
+1

固定它。谢谢!! – RonaDona 2014-10-22 01:17:24