2015-11-05 50 views
1

我正在嘗試使用數據透視表的過濾器,而不是使用單個數據透視表。篩選給定值的工作簿中的每個支點

理想情況下,我希望我的宏的一部分循環遍歷所有工作表上的所有支點,不要過濾它們,然後過濾已經在單元格中預存的日期。

這裏是我的嘗試:

嘗試不同的東西與這兩條線應該不過濾並在最後一天進行篩選。沒有錯誤出來。 LastWeek變量獲取適當的日期值,並且日期可用。

循環代碼有兩次意味着它可能會選擇樞軸,但不會發生濾波。我利用珀耳帖pagerange參考也試過:http://peltiertech.com/referencing-pivot-table-ranges-in-vba/

我有一對夫婦的過濾器,但要一日一叫「周結束日期(CAL)」過濾

任何人都可以在他們的兩分錢扔,請? 經過幾天的搜索,我還沒有找到最終解決方案。

我可以做一個記錄的宏,將單獨去每個樞紐,但我想學習如何用循環做到這一點。

謝謝

+1

您使用的是什麼版本的Excel?您可以嘗試添加連接到所有數據透視表的切片器,然後更新切片器中的選擇。 –

+0

切片機方法是一個很好的選擇,如果可用的話。如果不是或者另一種解決方案,過濾表取決於您的字段是「報表過濾器」還是「列或行標籤」。看到這個[問題(回答)](http://stackoverflow.com/questions/33223012/pivottable-page-filter-filtering-with-date/33223916#33223916)瞭解更多信息。 –

回答

1

我現在在使用Excel 2010,但很快就會轉換到365 64位。希望東西會繼續工作。

謝謝你們的及時回覆和一個好主意。我使用切片機,它實際上是更優雅的解決方案。編號仍然想知道如何做循環以及學習的目的。

這是解決辦法,如果任何人都需要它:

ActiveWorkbook.RefreshAll 
'Refreshed all so that new dates appear in the slicer 
Dim LastWeek As String 
'Had to restate LastWeek as a String instead of Date 
LastWeek = Range("K4").Value 


'Week Ending Date (Cal) is the name of the slicer connected with a given filter 
'Change this name to fit your purposes and dont forget to connect your slicer with all the pivots 
ActiveSheet.Shapes.Range(Array("Week Ending Date(Cal)")).Select 
With ActiveWorkbook.SlicerCaches("Slicer_Week_Ending_Date_Cal") 
    .SlicerItems(LastWeek).Selected = True 
    .SlicerItems("(blank)").Selected = False 
End With 
ActiveWorkbook.RefreshAll 

,後來在我的宏都去掉最新的參考電池和片來使它更清潔,保存爲一個輸出文件夾的另一個文件。

感謝大家。

相關問題