2014-10-22 330 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