2016-12-15 23 views
0

データソースが頻繁に変更されます。ピボットテーブルを更新した後、次のコードを使用して、グレードピボットアイテムフィールドを更新します。時にはグレード4が利用可能であり、そうでない場合もあります。基本的に、グレード4が利用可能な場合は選択し、利用できない場合はすべてのフィールドを選択することができます。私はそれを実行する何らかの理由で、それはelse行で停止します。助言がありますか?ピボットテーブル付きExcelのVBAコード

ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").ClearAllFilters 

If IsError(ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").CurrentPage = "4") Then 
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").CurrentPage = _ 
    "(All)"  
Else 
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").CurrentPage = "4"   
End If 
+0

私の答えでコードを試してみましたか?どんなフィードバックも評価されます –

答えて

0

あなたはIsErrorとトラップPivotField("Grade").CurrentPageエラーをすることはできません。

ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").ClearAllFilters 

On Error Resume Next 
ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").CurrentPage = "4" 

If Err.Number <> 0 Then 
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade").CurrentPage = _ 
    "(All)" 
    On Error GoTo 0 
End If 

は、以下のコードを試してみてください、あなたが Withステートメントを使用している場合、あなたのコードをクリーンアップすることができます。あなたのコードで、あなたは With ActiveSheet.PivotTables("PivotTable1").PivotFields("Grade")

+0

それはすべての魅力を働いた!あなたのお手伝いをしていただき、ありがとうございました。 – user7303815

+0

@ user7303815あなたの歓迎です、「回答」(私の投稿の隣に少し** V **をクリックしてください) –

関連する問題