带有数据透视表的Excel中的VBA代码
数据源将经常更改。在我刷新数据透视表后,我有以下代码来更新成绩透视项目字段。有时候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
您不能捕获PivotField("Grade").CurrentPage
误差IsError
。
尝试下面的代码:
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")
它工作的魅力!非常感谢您的帮助和关于使用的建议。 – user7303815
@ user7303815 your'e welcome,请标记为“答复”(点击我帖子旁边的小** V **) –
您是否在下面的答案中尝试了代码?任何反馈将不胜感激 –