本来还要继续讲剪贴板的,今天要穿插一个非常实用的代码。
这个问题是来自我的一个美女学生。
她由于做报表经常要做很多数据透视表。
然后每个月都要更新数据透视表的源数据,就涉及到数据透视表的更新问题。
这里介绍3种代码:
1.用PivotTable对象的RefreshTable方法
1 2 3 4 5 6 7 8 9 10 11 |
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方法
1 2 3 4 5 6 7 8 9 10 11 |
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方法
1 2 3 4 5 |
Sub 一键更新所有数据透视表() Dim oWB As Workbook Set oWB = Excel.ActiveWorkbook oWB.RefreshAll End Sub |
对比下,会发现方法3最方便,但是方法3不仅可以更新数据透视表的数据源,还可以更新任何用外部数据源关联的数据对象。
发表评论