0
我有一个Excel工作簿,其中包含多个工作表,每个工作表上有多个数据透视表。我试图遍历每个数据透视表并将其“报告功能”过滤器更改为从列表框中选择的用户指定值。所有数据透视表都有“报告功能”过滤器。VBA-“错误1004:无法获取PivotField类的CurrentPage属性”
我有大约50个数据透视表,并且代码成功地更改了除8个枢轴点之外的所有滤镜。这8个数据透视表的过滤器不会改变;相反,将返回错误“错误1004:无法获取PivotField类的CurrentPage属性”。
wHY是这段代码为少量的数据透视表返回这个错误吗?
奇怪的是,它似乎是返回此错误的完全相同的数据透视表。
Sub ChangePivotFilter(str As String)
Dim ws As Excel.Worksheet
Dim aWB As Excel.Workbook
Dim myPivot As Excel.PivotTable
Dim myPivotField As Excel.PivotField
Set aWB = ActiveWorkbook
For Each ws In aWB.Worksheets
For Each myPivot In ws.PivotTables
Set myPivotField = Nothing
On Error Resume Next
Set myPivotField = myPivot.PivotFields("Report Function")
myPivotField.CurrentPage = str
Next myPivot
Next ws
End Sub
任何帮助非常感谢!
你肯定有任何的'str'为“报告功能”'PivotField'匹配的结果?在所有表格中? –
即使您有错误恢复下一步,您是否收到该错误? – Sam
@Shai Rado是的,在所有数据透视表的报告功能字段中都有str的匹配。 – mark