带有数据透视表的Excel中的VBA代码

时间:2016-12-15 20:00:17

标签: vba excel-vba pivot excel

数据源会经常更改。刷新数据透视表后,我有以下代码来更新成绩数据透视表项字段。有时4级可用,有时则不是。基本上,如果4级可用,我希望它被选中,如果它不可用,则可以选择所有字段。出于某种原因,当我运行它时,它会在else行停止。有什么建议?

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

1 个答案:

答案 0 :(得分:0)

您无法使用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")