- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模板工作簿,其中有几个连接到sql连接的数据表,以及一些数据透视表,其来源是通过带来的数据。
我的印象是ActiveWorkbook.RefreshAll
会更新所有连接,然后更新数据透视表。事实上,这就是我手动运行刷新时发生的情况。但是,当我运行 VBA(实际上在 Access 中,但被正确引用等)时,它会更新连接而不是数据透视表?
我在 RefreshAll
之后尝试了 DoEvents
,但没有效果。
我现在唯一的选择是通过所有工作表、数据源、数据透视缓存运行For every
并以这种方式刷新它们吗?
最佳答案
ActiveWorkbook.RefreshAll 实际上是 RefreshAll 连接和枢轴。但是,在您的场景中,数据透视表可能基于您必须首先刷新的数据。当数据尚未加载时,数据透视表将刷新,因此会出现意外的行为。
对此有多种解决方案:
要么将通过连接返回的数据作为数据透视缓存,以便数据返回时数据透视表将自动刷新。这样,您也不会将数据本身存储在工作簿的单独工作表中。
在代码中或通过 UI 将所有连接的“后台刷新”属性设置为 false,然后正常执行。 两次。第二次,数据透视缓存将具有更新的数据,从而按预期刷新。 - 编辑:我不建议这样做,因为您将打开数据库连接两次,加载数据两次等等。效率非常低!
如上所述,将“后台刷新”属性设置为 false。使用“全部刷新”进行刷新后,循环遍历工作表的数据透视表集合,以在加载数据后手动刷新这些集合,如下所示。
代码:
Sub test()
Dim ws as Worksheet
Dim pt as PivotTable
ActiveWorkbook.RefreshAll 'make sure the refresh in bg property is false for all connections
For each ws in ActiveWorkbook.Worksheets
For each pt in ws.pivottables
pt.RefreshTable
Next pt
Next ws
End Sub
或者仅刷新数据透视缓存(效率更高,特别是在多个表使用相同缓存的情况下):
Sub test()
Dim pc as PivotCache
ActiveWorkbook.RefreshAll 'make sure the refresh in bg property is false for all connections
For each pc in ActiveWorkbook.PivotCaches
pc.Refresh
Next pc
End Sub
关于excel - RefreshAll 不更新数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132156/
我有一个模板工作簿,其中有几个连接到sql连接的数据表,以及一些数据透视表,其来源是通过带来的数据。 我的印象是ActiveWorkbook.RefreshAll会更新所有连接,然后更新数据透视表。事
[编辑:] 固定代码标签 [/编辑] 我设置了一个计时器(代码改编自各种来源)。 它调用一个 sub,其中包含行 ThisWorkbook.RefreshAll 如果我通过在其中按 F5 来运行子 R
我有一个子例程,它调用 ActiveWorkbook.RefreshAll 从网站上的 XML 源引入新数据,然后对其执行多项修改。问题是没有足够的时间来完成 RefreshAll 命令,因此以下子命
我正在尝试使用以下 Python 脚本刷新 Excel 文件: xl = Dispatch('Excel.Application') workbook = xl.Workbooks.open('\\p
我想遍历一个目录(使用 C#)并刷新其中的所有 Excel 工作表。我使用: Workbook.RefreshAll(); 如何等待 Workbook.RefreshAll() 语句完成? 问题是:我
我创建了一个宏来刷新我的工作簿(重新计算值、刷新链接等)。 刷新链接的代码工作正常,但当它点击 RefreshAll 时,我收到以下错误。 ActiveWorkbook.UpdateLink Name
使用新代码更新了 2/16,以反射(reflect)评论中发现的错误 我使用以下代码使航路点在页面上正常工作。请注意,我使用的是该插件的 3.1.1 版本,但我仍然使用类似于该插件的 2.x 版本的
我是一名优秀的程序员,十分优秀!