刷新数据透视表

在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”的对话框,但是查询仍然显示正在运行。

另请参阅此答案 – https://stackoverflow.com/a/25054870/3590073