以编程方式构buildExcel数据透视表

我写了一个构buildexcel报告的脚本。 这些报告可能包含数据透视表。 要在加载时刷新数据透视表,我将refreshOnLoad="1"参数添加到了pivotCacheDefinition1.xml文件中。 它只适用于我不喜欢的一件小事 – 当我打开一个报告时,excel问我“是否要replace目标单元格的内容”? 我按“确定”,它刷新数据透视表。 我不喜欢这个问题的popup式窗口,我认为如果指定了refreshOnLoad="1"显然应该总是刷新内容。 所以,我的问题是如何抑制这个窗口popup?

编辑

根据这个线程:

每当Excel发现它的更新将取代任何现有的单元格的内容,它会警告你。这是一个重要的function。

那么,这是否意味着Excel会在发现数据透视表内容应该被刷新时一直发出警告?

编辑

这似乎是我的问题类似于这一个。 但是,我没有使用VBmacros,我正在build立我的报告与其他编程语言(编程解压xlsx文件,并处理所有这些xml文件里面)。

编辑

那么,我尝试了Application.AlertBeforeOverwriting = FalseApplication.DisplayAlerts = False ,但都没有工作。

我还没有能够重现这个问题,所以这些都是比答案更多的build议。

我认为你正在尝试的命令发生得太晚–Excel需要知道“在覆盖之前不要提醒”,才会尝试刷新。 如果它打开刷新,那么你设置属性,你有错误的事件序列。

尝试:

  1. 请勿将refreshOnLoad="1"放入文件中。
  2. 将VBA例程Workbook_Open()添加到工作簿。
  3. 在VBA例程中,设置属性Application.AlertBeforeOverwriting = False ,然后调用方法PivotTable.Refresh

这应该解决任何“一系列事件”问题。