我写了一个构建excel报告的脚本。这些报告可能包括数据透视表。要在加载时刷新数据透视表,我在refreshOnLoad="1"
文件中添加了pivotCacheDefinition1.xml
参数。它只适用于我不喜欢的一件小事 - 当我打开报告时,excel问我“你想要替换目标单元格的内容吗?”?我按“确定”并刷新数据透视表。我不喜欢这个带有这个问题的弹出窗口,我认为很明显,如果指定了refreshOnLoad="1"
,那么应该始终刷新内容。所以,我的问题是如何抑制弹出这个窗口?
修改
根据this帖子:
每当Excel发现它的更新将替换任何现有单元格的内容时,它都会发出警告。这是重要的功能。
那么,它是否意味着当Excel看到数据透视表内容应该被刷新时,它总会发出警告?
修改
似乎我的问题与this类似。但是,我没有使用VB宏,我正在使用其他一些编程语言构建我的报告(以编程方式解压缩xlsx文件并处理其中的所有xml文件)。
修改
好吧,我尝试了Application.AlertBeforeOverwriting = False
和Application.DisplayAlerts = False
,但都没有。
答案 0 :(得分:1)
我还没有能够重现这个问题,所以这些建议不仅仅是答案。
我认为您正在尝试的命令发生得太晚了 - Excel需要知道"在覆盖之前不要发出警报"在它试图刷新之前。如果它在打开时刷新,那么你设置属性,你有错误的事件序列。
尝试:
refreshOnLoad="1"
放入您的档案中。Workbook_Open()
添加到工作簿。 Application.AlertBeforeOverwriting = False
,然后调用方法PivotTable.Refresh
。这应解决任何"事件序列"问题。