我在 Excel 2007 中大约有 50 个数据透视表,需要每天更新下拉菜单几次,以反映我拥有的数据页面中的多条数据。为了恢复这些图表,一遍又一遍地更新每个表格非常耗时。有没有办法在一个地方更新它们,也许引用一个单元格而不是更新每个下拉菜单?
答案1
不幸的是,我认为 Excel 没有内置方法来更新所有数据透视表。
我将通过记录更新每个数据透视表的宏,然后将该宏链接到一个按钮来实现这一点。如果这对您来说是一个不熟悉的领域,请告诉我,我可以进一步详细说明。
答案2
我最近需要这个,所以做了一些修改。也许有人会觉得它有用。
我有一些按日历周汇总今年迄今数据的数据透视图。我录制了一个宏 [Office 2016:查看-宏-记录宏],并检查了最后一个 CW 是否包含在所有单个数据透视表的行标签中,从而包含在图表中。然后我停止了宏并进入编辑模式 ( Alt+ F11),并在模块 1 中找到代码。
然后,我将工作表中的单元格 C2 设置为始终为上周的周数 [ =WEEKNUM(Today())-1
],设置一个等于该单元格值的变量,并使用以下代码将录制的宏中的选择替换为变量名:
Dim i As Integer
Sub CW_Update()
' Keyboard Shortcut: Ctrl+Shift+J
i = Cells(1, 3).Value
With ActiveSheet.PivotTables("PivotTable1").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable2").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable3").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable4").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable5").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable6").PivotFields("CW")
.PivotItems(i).Visible = True
End With
With ActiveSheet.PivotTables("PivotTable7").PivotFields("CW")
.PivotItems(i).Visible = True
End With
End Sub
现在,每个星期一当我查看统计数据时,只需按Ctrl++ ,所有内容就会自动更新。ShiftJ