🧙‍♂️

ExcelVBAでピボットテーブルを更新する

2022/04/28に公開

VBAでピボットを更新する

Sub S_ClearFilterPivot()
    
    Dim clearSheet As Worksheet
    Set clearSheet = ActiveWorkbook.Worksheets("シート名")
    
    With clearSheet.PivotTables("ピボットテーブル名")
        'これでピボットテーブルを更新できます
	.PivotCache.Refresh
    End With
End Sub

VBAでピボットの更新後、不要なデータが残るなら

ピボットテーブルが不要なデータを保持しています

Sub S_ClearFilterPivot()

    Dim clearSheet As Worksheet
    Set clearSheet = ActiveWorkbook.Worksheets("シート名")
    
    With clearSheet.PivotTables("ピボットテーブル名")
    
        '【重要】データソースから削除されたアイテムの保持をしない
        .PivotCache.MissingItemsLimit = xlMissingItemsNone
        'これでピボットテーブルを更新できます
	.PivotCache.Refresh
	
    End With
End Sub

VBAでピボットの更新後、アイテムラベルを繰り返したい

アイテムラベルを必ず繰り返してほしいこともあると思います

Sub S_ClearFilterPivot()
    
    Dim clearSheet As Worksheet
    Set clearSheet = ActiveWorkbook.Worksheets("シート名")
    
    With clearSheet.PivotTables("ピボットテーブル名")
    
        '【重要】データソースから削除されたアイテムの保持をしない
        .PivotCache.MissingItemsLimit = xlMissingItemsNone
	'これでピボットテーブルを更新できます
        .PivotCache.Refresh
	'アイテムラベルを繰り返します
        .RepeatAllLabels xlRepeatLabels
    
    End With
End Sub

VBAでピボットの更新後、全てのフィルターを解除する

Sub S_ClearFilterPivot()
    
    Dim clearSheet As Worksheet
    Set clearSheet = ActiveWorkbook.Worksheets("シート名")
    
    With clearSheet.PivotTables("ピボットテーブル名")
    
        '【重要】データソースから削除されたアイテムの保持をしない
        .PivotCache.MissingItemsLimit = xlMissingItemsNone
	'これでピボットテーブルを更新できます
        .PivotCache.Refresh
        'アイテムラベルを繰り返します
	.RepeatAllLabels xlRepeatLabels
        '全てのフィルターを解除します
	.ClearAllFilters
    End With
End Sub

Discussion