VBA代码大全026:如何用vba一键更新所有数据透视表?

本来还要继续讲剪贴板的,今天要穿插一个非常实用的代码。

这个问题是来自我的一个美女学生。

她由于做报表经常要做很多数据透视表。

然后每个月都要更新数据透视表的源数据,就涉及到数据透视表的更新问题。

这里介绍3种代码:

1.用PivotTable对象的RefreshTable方法

Sub 一键更新所有数据透视表()
    Dim oPT As PivotTable
    Dim oWK As Worksheet
    For Each oWK In Excel.ThisWorkbook.Worksheets
        With oWK
            For Each oPT In oWK.PivotTables
                oPT.RefreshTable
            Next
        End With
    Next
End Sub

2.用​数据透视表的缓存对象PivotCache的Refresh方法

Sub 一键更新所有数据透视表()
    Dim oPT As PivotTable
    Dim oWK As Worksheet
    For Each oWK In Excel.ThisWorkbook.Worksheets
        With oWK
            For Each oPT In oWK.PivotTables
                oPT.PivotCache.Refresh
            Next
        End With
    Next
End Sub

3.用Workbook对象的RefreshAll方法

Sub 一键更新所有数据透视表()
    Dim oWB  As Workbook
    Set oWB = Excel.ActiveWorkbook
    oWB.RefreshAll
End Sub

对比下,会发现方法3最方便,但是方法3不仅可以更新数据透视表的数据源,还可以更新任何用外部数据源关联的数据对象。

       

发表评论