excel - 刷新数据透视表

标签 excel vba pivot-table excel-2013

在 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

编辑
添加到它---我实际上需要刷新嵌入式 MySQL 查询 1 次然后刷新数据透视表。

最佳答案

通过设置 BackgroundQuery 解决了我的问题至False在刷新之前在相关连接中:

With ThisWorkbook.Connections(1).OLEDBConnection
    .BackgroundQuery = False
    .Refresh
End With
Pivot.RefreshTable

(将 OLEDBConnection 替换为适当的连接对象)

看来 BackgroundQuery设置为 True ,在代码退出之前,连接不会完成检索数据。您可以通过以下方式看到这一点:
With ThisWorkbook.Connections(1).OLEDBConnection
    .BackgroundQuery = True
    .Refresh
    Do While .Refreshing
        DoEvents
    Loop
End With

此循环永远不会终止,并且 Excel 中的状态栏显示“正在运行背景查询(单击此处取消)”;单击会弹出一个对话框,显示“已获取所有行。”,但查询显然仍在运行。

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

关于excel - 刷新数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169016/

相关文章:

excel - 测试公式中相邻单元格是否为空白

VBA - "Long"如何在 VBA 中工作 - 玩溢出

image - 使用 Coldfusion 8 将图像添加到 Excel 文档中的行

javascript - JavaScript 中的 Excel 预测公式

vba - 在 Excel VBA 中使用 LIKE 查找单元格的重复项?

vba - Excel 行与列函数/vba 的比较

vba - 循环页面或分页符?

pivot - BigQuery 透视数据行列

python - 将 Pandas 数据帧转为具有多层的长格式

Excel 宏生成的文件副本保留指向原始文件的链接