2014-10-07 161 views
1

Excel VBA中是否有方法允許在數據透視表中使用多個值過濾器?我試圖過濾> 0和底部十個項目的值。在下面的示例代碼中(通過錄制宏生成),第二個過濾步驟覆蓋第一個。如果支持多個值過濾器,似乎我只需要在這兩個表達式之間添加布爾邏輯AND即可獲得兩個過濾器的結果。請建議對代碼進行任何更改,或者讓我知道是否不支持。謝謝!Excel VBA - 具有多值過濾器的數據透視表

Sub Multiple_Value_Filters() 

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Full Name").PivotFilters.Add _  
     Type:=xlValueIsGreaterThan, _ 
     DataField:=ActiveSheet.PivotTables("PivotTable1").PivotFields("Days"), _ 
     Value1:=0 
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Full Name").ClearAllFilters 
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Full Name").PivotFilters.Add _ 
     Type:=xlBottomCount, _ 
     DataField:=ActiveSheet.PivotTables("PivotTable1").PivotFields("Days"), _ 
     Value1:=10 
End Sub 

回答

1

我真的不知道你的數據透視表應該在沒有看到一些示例數據的情況下做什麼,但我相信你應該能夠做你正在嘗試的。 嘗試用這種亂搞:

Sub Multiple_Value_Filters() 
    Dim pvt As PivotTable 
    Set pvt = ActiveSheet.PivotTables("PivotTable1") 

    With pvt.PivotFields("Full Name") 
     .ClearAllFilters 
     .PivotFilters.Add Type:=xlValueIsGreaterThan, DataField:=pvt.PivotFields("Days"), Value1:=0 
     .PivotFilters.Add Type:=xlBottomCount, DataField:=pvt.PivotFields("Days"), Value1:=10 
    End With 
End Sub 

發現數據透視表選項,允許多個過濾器,但它也不太工作對我來說,即使它會工作,我手工做的。無論出於什麼原因,Excel似乎都不喜歡代碼。此功能僅適用於Excel 2007數據透視表和更新版本,但我正在Excel 2010中運行,因此我不確定此問題是什麼。

Sub Multiple_Value_Filters() 
    Dim pvt As PivotTable 
    Set pvt = ActiveSheet.PivotTables("PivotTable1") 

    With pvt.PivotFields("Full Name") 
     .ClearAllFilters 
     .AllowMultipleFilters = True ' This is the main key to getting this to work but mine still errors out whenever I add the 2nd filter. 
     .PivotFilters.Add Type:=xlValueIsGreaterThan, DataField:=pvt.PivotFields("Days"), Value1:=0 
     .PivotFilters.Add Type:=xlBottomCount, DataField:=pvt.PivotFields("Days"), Value1:=10 
    End With 
End Sub 
+0

感謝您的迴應!這段代碼看起來非常接近。但是當我運行它,我得到運行時錯誤1004應用程序定義或對象定義的錯誤。當我點擊調試時,第二個.PivotFilters語句突出顯示。並從結果被過濾的方式,我可以告訴只有第一個.PivotFilters語句運行。感謝您的任何建議! – 2014-10-08 12:41:07

+0

你能提供一個數據源表的例子嗎?列名稱/數據類型。樣本數據? – Archias 2014-10-08 14:47:04

+0

感謝您的幫助!這是一個鏈接,用於下載數據源表並查看代碼如何與數據透視表一起工作。 https://www.dropbox.com/s/bvfypep0xlfcdzw/Pivot%20Table%20Test.xlsm?dl=0 – 2014-10-08 18:24:45

相關問題