use*_*995 10 excel vba pivot-table excel-vba
在我过去后第一次运行在Excel自动刷新数据透视表的数据,我发现,在我第一次执行的查询从外部数据源被刷新,大约需要1分钟来执行.在我的第二次运行中,数据透视表已更新.
是否有解决方案(VBA代码)以刷新两个时间表内外部数据源和数据透视表一起通过点击(如果假设我们设定一个计时器)command button?
小智 23
在连接属性下,取消选中"启用后台刷新".这将使得连接在被告知时刷新,而不是在后台,因为其他进程发生.
禁用后台刷新后,您的VBA过程将等待外部数据刷新,然后再转到下一行代码.
然后你只需修改以下代码:
ActiveWorkbook.Connections("CONNECTION_NAME").Refresh
Sheets("SHEET_NAME").PivotTables("PIVOT_TABLE_NAME").PivotCache.Refresh
Run Code Online (Sandbox Code Playgroud)
您还可以在VBA中关闭后台刷新:
ActiveWorkbook.Connections("CONNECTION_NAME").ODBCConnection.BackgroundQuery = False
Run Code Online (Sandbox Code Playgroud)
jpu*_*700 11
我使用了上面的答案,但使用了RefreshAll方法.我还将其更改为允许多个连接,而无需指定名称.然后我将其链接到电子表格上的按钮.
Sub Refresh()
Dim conn As Variant
For Each conn In ActiveWorkbook.Connections
conn.ODBCConnection.BackgroundQuery = False
Next conn
ActiveWorkbook.RefreshAll
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107989 次 |
| 最近记录: |