VBA数据透视表过滤器

时间:2014-10-31 18:25:20

标签: excel vba excel-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并没有运气。我得到的错误是:

“应用程序定义或对象定义的错误”

感谢任何帮助。

1 个答案:

答案 0 :(得分: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