【问题标题】:How to update a pivot table automatically every time data source is changed每次更改数据源时如何自动更新数据透视表
【发布时间】:2019-04-04 13:13:33
【问题描述】:

这是我的设置:

工作表“数据”是(格式化的)表格。

工作表“破折号”是基于工作表“数据”和大量切片器的数据透视表。

工作表“nr”是 a) 基于“数据”的数据透视表,仅显示单个 nr(工人数量)。

工作表“nr”是 b) 格式化表格,我使用“single nr”计算 52 周内每周的班次。

工作表“nr”是 c)“每周班次”表 (“PIVnyKIT”) 的数据透视表。

我希望能够从工作表“dash”中的切片器中选择数据,并在工作表“nr”中查看表“每周班次”中的数据变化(我正在从这个表中提取一个图表,我正在显示表“破折号”)。 因为当后台数据更改时数据透视表不会自动更新,所以我打开了我的 vba 编辑器。 在此我选择了“Microsoft Excel 对象”和工作表“nr”并输入了以下 vba 代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) PivotTables("PIVnyKIT").RefreshTable End Sub

但由于某些奇怪的原因,它不起作用...... 所有值都按应有的方式更新,但数据透视表“PIVnyKIT”保持不变。直到我选择(单击)进入工作表“nr”中的随机单元格。 然后“PIVnyKIT”突然更新了。

我已经完成了一些测试,当我直接对数据表进行更改(并按 Enter)时,这种更新数据透视表的方式似乎工作得很好。 但当数据表根据另一个工作表中的公式和切片器选择进行自我更新时...

有人知道如何进行这项工作吗?可能还有其他方法吗?

【问题讨论】:

    标签: excel vba excel-formula pivot-table


    【解决方案1】:

    试试:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
       Application.EnableEvents = False
       ThisWorkbook.RefreshAll
       Application.EnableEvents = True
    
    End Sub
    

    【讨论】:

    • 我考虑了这么多小时...解决方案就这么简单... :-)) 非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 2019-11-05
    • 2011-10-21
    • 2014-06-16
    相关资源
    最近更新 更多