2015-10-19 138 views
0

我想過濾具有日期值的頁面過濾器。但是當我使用.PivotFilters.Add type:=xlBefore, value:="5/1/2015"時,我不斷收到錯誤信息。 我也嘗試下面的代碼:數據透視表,頁面過濾器 - 用日期過濾

Dim nd As Long 
nd = CLng(Date - 90) 

pvt.PivotFields("startdate").ClearAllFilters 
pvt.PivotCache.Refresh 
pvt.PivotFields("startdate").PivotFilters.Add Type:=xlBefore, Value:=nd 

但現在我越來越命名參數未找到

數據透視表已成功創建但未經過濾。

+0

你在哪裏數據透視表中的'startdate'字段?報告過濾器?列標籤?行標籤? –

+1

@ScottHoltzman它的投票過濾器 –

+0

這就是問題所在。報告過濾器字段的行爲不同。您可能需要循環查看該字段中的日期,並在日期之前選擇它們。確保將啓用多個項目設置爲true。 –

回答

0

當在Report Filter過濾中使用數據透視字段時,它與或Column Label不同。請參閱下面的代碼,在位於Report Filterstartdate上設置篩選條件。

Dim nd As Date 
nd = CLng(Date - 90) 

Dim pvt As PivotTable 
Set pvt = Sheet1.PivotTables(1) 

With pvt 

    .PivotCache.Refresh 

    Dim pf As PivotField 
    Set pf = .PivotFields("startdate") 

    With pf 

     .ClearAllFilters 

     Dim pi As PivotItem 
     For Each pi In pf.PivotItems 
      If pi < nd Then pi.Visible = True Else: pi.Visible = False 
     Next 

    End With 

End With 
+0

它的工作!非常感謝!!!! –