2016-02-29 159 views
0

這只是我寫的一個vba代碼的一部分,簡單的日期比較不起作用。我有一張包含大量數據的工作表,vba代碼創建一個數據透視表。代碼運行良好,並過濾掉所有過去的日期,但由於某種原因(今天是2月29日),它不會過濾掉(2月3日和2月4日)。它過濾掉所有其他2月日期,但它只是這兩個日期。任何人都知道什麼是錯的?日期比較不正確

With ActiveSheet.PivotTables("pivottable1").PivotFields("issuedate") 
    For Each pi In .PivotItems 
     If pi < Date Then 
      pi.Visible = False 
     End If 
    Next pi 
End With 
+0

http://stackoverflow.com/help/how-to-ask按照此問題先問一個問題 – SkyWalker

+0

我曾經有一個類似的問題來自SQL Server的日期。問題在於Excel不理解來自SQL Server的'datetime'字段,因爲它包含毫秒。所以日期格式是'2015-02-04 00:00:00.000'。 Excel無法理解這一點。但是,如果您將其更改爲「2015-02-04 00:00:00」,那麼它就可以工作。這可能是問題嗎? – Ralph

+0

你也可以使用函數DateDiff。 –

回答

0

您是否檢查過列類型是日期而不是字符串?也許嘗試CDate(pi)?

如果這不起作用,請發佈不工作的日期 - 可能通過執行Debug.print(pi)。

+0

它的工作。謝謝! –

+0

'Typename(Pi)'必須是'date'。另外,不要使用像Pi這樣的混淆名稱的變量,它應該已經是3.1415,但奇怪的是不是...... –