2016-07-27 131 views
0

我有我的表數據透視表和我想要添加日期過濾器:Excel的VBA - 數據透視表的更改日期過濾

Private Sub foo() 

Dim MyDate 
MyDate = #1/27/1993# 
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlBetween, Value1:=MyDate, Value2:=MyDate 

End Sub 

如何過這會導致一個「無效過程調用或參數」錯誤。我究竟做錯了什麼?

更新: THX luke_t,現在我知道我必須使用xlDateBetween。 現在我的代碼如下所示:

Private Sub foo() 
    Dim d As Date 
    Dim dd As Date 

    d = DateSerial(2016, 1, 1) 
    dd = DateSerial(2016, 1, 2) 
    Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=dd 
End Sub 

現在它說:「您輸入的日期不是一個有效日期」(1004)。

+0

您是否試圖通過錄制簡單的宏創建格式? – pnuts

回答

0

你需要傳遞xlDateBetweenPivotFilters.Add方法的Type:=參數。

可以傳遞到類型參數常量名的Here is a list

使用與Type:=參數的字符串。見下文。

Private Sub foo() 
    Dim d As String 

    d = "01/01/2016" 
    Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=d 
End Sub 
+0

的確,這一定是問題的原因之一。但現在我有一個錯誤1004(無效的日期)。我用新代碼更新了我的問題。 – ThomasMX

+0

@ThomasMX - 我認爲你應該把這個標記爲已回答,因爲它會根據*「無效過程調用或參數」錯誤*修復你原來的問題。日期問題幾乎是一個單獨的問題 - 尤其是因爲您更改了原始代碼。 –

+0

標記爲現在回答 – ThomasMX

相關問題