2014-10-31 235 views
0

所以我有一些問題與我的VBA和切換數據透視表過濾器。這是我的代碼:VBA數據透視表過濾器

Sub Macro2() 
Sheets("Report").Visible = True 

Sheets("Report").PivotTables("PivotTable1").PivotCache.Refresh 

Sheets("Report").PivotTables("PivotTable1").PivotFields("dwm").ClearAllFilters 
Sheets("Report").PivotTables("PivotTable1").PivotFields("dwm").CurrentPage = "1" 

Sheets("Report").Activate 
End Sub 

我試過使用「1」,1,1.0,並沒有任何運氣。我得到的錯誤是:

「應用程序定義或對象定義的錯誤」

任何幫助表示讚賞。

+0

記錄一個宏,看看你會得到什麼值? – 2014-10-31 18:28:29

+0

當我這樣做時,我得到了ActiveSheet.PivotTables(「PivotTable1」)。PivotFields(「dwm」)。CurrentPage =「1」 – 2014-10-31 18:29:25

+0

奇怪的是,一旦我嘗試運行代碼,記錄器創建它給了我同樣的錯誤。 – 2014-10-31 18:30:45

回答

0

由於某些原因,Excel 2013可能是這裏的問題。如果其他人遇到此問題,我設法找到解決方法。我使用了一個循環來讓我編輯字段的可見性。這是解決方案:

Sub CreateReport() 

Sheets("Report").Visible = True 

Sheets("Report").PivotTables("PivotTable1").PivotCache.Refresh 

Sheets("Report").PivotTables("PivotTable1").PivotFields("dwm").ClearAllFilters 

Dim pi As PivotItem 

    For Each pi In Sheets("Report").PivotTables("PivotTable1").PivotFields("dwm").PivotItems 
     If pi.Value = 0 Then 

     pi.Visible = False 

     End If 

    Next pi 

Sheets("Report").Activate 

End Sub 
相關問題