各ワークシートに複数のピボットテーブルを含む複数のワークシートを含む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
ご協力いただきありがとうございます。
「レポート関数」の「PivotField」には 'str'と一致する結果がありますか?すべてのテーブルで? –
On Error Resume Nextがあってもそのエラーが発生していますか? – Sam
@Shai Radoはい、すべてのピボットテーブルの[レポート関数]フィールドにstrがあります。 – mark