3

我有一个 Excel 模板 (.xlt),其中包含一个用于报告数据的工作表,以及 4 个带有数据透视表的工作表。

当我们的报告系统创建报告并将模板应用到它时,数据透视表引用的某些字段不存在,因为运行宏来创建它们作为报告系统过程的一部分。

但是,由于这些字段不存在,Excel 会抛出错误(访问组件属性/方法时发生错误:REFRESH。参考无效。)。为了尝试防止这种情况,我取消了所有数据透视表上的选项Refresh data when opening the file

我知道我可以使用 VBA 刷新数据透视表,但是有没有办法防止数据透视表在打开文档网时刷新它们,而是在创建新字段后通过 VBA 刷新它们?谢谢。

Function UpdatePivots()
    ActiveWorkbook.Sheets("DJG Marketing - Client List by ").PivotTables("PivotTable1").PivotCache.Refresh
    ActiveWorkbook.Sheets("DJG Marketing - Client List by ").PivotTables("PivotTable2").PivotCache.Refresh
    ActiveWorkbook.Sheets("DJG Marketing - Client List by ").PivotTables("PivotTable3").PivotCache.Refresh
    ActiveWorkbook.Sheets("DJG Marketing - Client List by ").PivotTables("PivotTable4").PivotCache.Refresh
End Function
4

1 回答 1

2

这就是你需要的:

' Disable automatic calculation
Application.Calculation = xlCalculationManual
' do regular operation here
' Force a calculation
Application.Calculate
' Then remember to run automatic calculations back on
Application.Calculation = xlCalculationAutomatic

取自: http ://www.zerrtech.com/content/stop-vba-automatic-calculation-using-applicationcalculation-manual

于 2012-09-28T16:03:27.067 回答