以编程方式构buildExcel数据透视表
我写了一个构buildexcel报告的脚本。 这些报告可能包含数据透视表。 要在加载时刷新数据透视表,我将refreshOnLoad="1"
参数添加到了pivotCacheDefinition1.xml
文件中。 它只适用于我不喜欢的一件小事 – 当我打开一个报告时,excel问我“是否要replace目标单元格的内容”? 我按“确定”,它刷新数据透视表。 我不喜欢这个问题的popup式窗口,我认为如果指定了refreshOnLoad="1"
显然应该总是刷新内容。 所以,我的问题是如何抑制这个窗口popup?
编辑
根据这个线程:
每当Excel发现它的更新将取代任何现有的单元格的内容,它会警告你。这是一个重要的function。
那么,这是否意味着Excel会在发现数据透视表内容应该被刷新时一直发出警告?
编辑
这似乎是我的问题类似于这一个。 但是,我没有使用VBmacros,我正在build立我的报告与其他编程语言(编程解压xlsx文件,并处理所有这些xml文件里面)。
编辑
那么,我尝试了Application.AlertBeforeOverwriting = False
和Application.DisplayAlerts = False
,但都没有工作。
我还没有能够重现这个问题,所以这些都是比答案更多的build议。
我认为你正在尝试的命令发生得太晚–Excel需要知道“在覆盖之前不要提醒”,才会尝试刷新。 如果它打开刷新,那么你设置属性,你有错误的事件序列。
尝试:
- 请勿将
refreshOnLoad="1"
放入文件中。 - 将VBA例程
Workbook_Open()
添加到工作簿。 - 在VBA例程中,设置属性
Application.AlertBeforeOverwriting = False
,然后调用方法PivotTable.Refresh
。
这应该解决任何“一系列事件”问题。