刷新数据透视表
在Excel 2013中 – 什么是刷新数据透视表的VBA语法? 我已经尝试了下面的两个选项,他们都没有刷新我的数据透视表。
'Does Not Work Sheets("Sheet1").Select ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh 'Does Not Work For Each Sheet In ThisWorkbook.Worksheets For Each Pivot In Sheet.PivotTables Pivot.RefreshTable Pivot.Update Next Next
编辑
添加到它—我实际上需要刷新一个embedded式MySQL查询第一THEN刷新数据透视表。
我的问题是通过在刷新之前在相关连接中将BackgroundQuery
设置为False
来解决的:
With ThisWorkbook.Connections(1).OLEDBConnection .BackgroundQuery = False .Refresh End With Pivot.RefreshTable
(用适当的连接对象replaceOLEDBConnection
)
看来BackgroundQuery
设置为True
,连接将不会完成检索数据,直到代码退出。 你可以这样做:
With ThisWorkbook.Connections(1).OLEDBConnection .BackgroundQuery = True .Refresh Do While .Refreshing DoEvents Loop End With
这个循环永远不会终止,并在Excel中的状态栏显示“运行后台查询(点击这里取消)”; 点击会popup一个显示“All rows fetched”的对话框,但是查询仍然显示正在运行。