【发布时间】:2016-05-10 00:00:03
【问题描述】:
我有一个模板工作簿,其中有几个连接到 sql 连接的数据表,以及一些数据透视表,它们的来源是通过的数据。
我的印象是ActiveWorkbook.RefreshAll 会更新所有连接,然后更新枢轴。事实上,当我手动运行全部刷新时会发生这种情况。但是,当我运行 VBA(实际上在 Access 中,但被正确引用等)时,它会更新连接而不是数据透视表?
我在RefreshAll 之后尝试了DoEvents,但没有效果。
我现在唯一的选择是通过所有工作表、数据源、数据透视缓存运行For each 并以这种方式刷新它们吗?
【问题讨论】:
-
有时当您刷新数据透视表时,它不会更改“数据源”范围。如果数据范围增加,您可能必须手动更改它,或者让您的 vba 代码知道偏移直到空白。
-
麻烦的问题是
ActiveWorkbook.RefreshAll是在MS Excel GUI中启动“全部刷新”时,宏记录器在代码中写入的内容。