VBA数据透视表过滤器
因此,我的VBA和切换数据透视表筛选器时遇到了一些问题。这是我的代码:VBA数据透视表过滤器,vba,excel,Vba,Excel,因此,我的VBA和切换数据透视表筛选器时遇到了一些问题。这是我的代码: Sub Macro2() Sheets("Report").Visible = True Sheets("Report").PivotTables("PivotTable1").PivotCache.Refresh Sheets("Report").PivotTables("PivotTable1").PivotFields("dwm").ClearAllFilters Sheets("Report").PivotTab
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,但没有任何运气。我得到的错误是:
应用程序定义或对象定义错误
感谢您的帮助。出于某种原因,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
录制一个宏,看看您得到了什么值?当我这样做时,我得到了ActiveSheet.PivotTablePivotTable1.PivotFieldsdwm.CurrentPage=1,这已经够无聊了。一旦我尝试运行记录器创建的代码,它会给我同样的错误。您确定在这一行上得到了正确的错误吗?你试过了吗?是的,我试过了