尝试使用VBA筛选我的数据透视表基于单元格D2和E2中的年份和期间值

我试图使用VBA过滤我的数据透视表,所以它将分别根据单元格D2和E2中的一个句点和一个年份进行过滤。 我有下面的代码是按年来筛选和工作没有财政期间在列中,但是当我把会计期间在列debugging在Field.ClearAllFiltersField.CurrentPage = Year行。 有人可以帮我find解决这个问题吗?

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Intersect(Target, Worksheets("CY PT").Range("E2")) Is Nothing Then Exit Sub Dim PT As PivotTable Dim Field As PivotField Dim Year As String Set PT = Worksheets("CY PT").PivotTables("CY PT") Set Field = PT.PivotFields("Fiscal Year") Year = Worksheets("CY PT").Range("E2").Value With PT Field.ClearAllFilters Field.CurrentPage = Year PT.RefreshTable End With End Sub 

.CurrentPage方法只适用于PageFields。 听起来就像你试图过滤RowFields。 所以你的select是:

如果你select最后一个选项,你需要知道这可能需要一段时间。 查看我在过滤基于variables范围的数据透视表中发布的代码,了解如何高效地完成此操作。 也请在http://dailydoseofexcel.com/archives/2013/11/14/filtering-pivots-based-on-external-ranges/阅读我的post。