【发布时间】:2014-11-18 15:31:41
【问题描述】:
有没有人知道当 Excel (2010) 电子表格中的数据发生更改时自动刷新所有数据透视表(每张包含 4 个数据透视表的 2 张工作表)的 VBA 代码?它还可以搜索特定单元格中的更改。
欢迎任何建议!
【问题讨论】:
标签: excel pivot excel-2010 pivot-table
有没有人知道当 Excel (2010) 电子表格中的数据发生更改时自动刷新所有数据透视表(每张包含 4 个数据透视表的 2 张工作表)的 VBA 代码?它还可以搜索特定单元格中的更改。
欢迎任何建议!
【问题讨论】:
标签: excel pivot excel-2010 pivot-table
如果您的数据透视表在整个工作簿中设置了绝对范围,我喜欢这种简单的方法:
Sub RefreshAllPivots()
' RefreshAllPivots Macro
' Refresh all the pivots in the workbook
ActiveWorkbook.RefreshAll
End Sub
【讨论】:
添加到包含源数据的工作表中的这段代码应该可以工作
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sheet As Worksheet, Pivot As PivotTable
For Each Sheet In ThisWorkbook.Worksheets
For Each Pivot In Sheet.PivotTables
Pivot.RefreshTable
Pivot.Update
Next
Next
End Sub
更多信息请查看 http://msdn.microsoft.com/en-us/library/office/ff839775(v=office.15).aspx
【讨论】:
如果工作表中有名为“数据”的数据,并且表位于工作表“数据透视表”中,表名为“PivotTable1”,则可以将其粘贴到数据表 vba 选项卡上。
Private Sub Worksheet_Calculate()
'If data on this worksheet changes, refresh the pivot table
Sheets("Pivot").PivotTables("PivotTable1").RefreshTable
End Sub
【讨论】: