簡體   English   中英

具有數據透視表的Excel中的VBA代碼

[英]VBA code in Excel with pivot tables

數據源將經常更改。 刷新數據透視表后,我將使用以下代碼更新成績數據透視表項字段。 有時有4年級,有時沒有。 本質上,如果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

你不能捕獲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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM