sql-server-2008 - 首次运行时自动刷新 Excel 中的数据透视表数据

标签 sql-server-2008 excel pivot-table vba

背景:我有 2 个 excel 表:

  1. 包含数据透视表和宏“刷新”
  2. 来自 SQL 服务器的数据

宏包含用于自动刷新数据和更新数据透视表的 VBA 代码。数据每晚更新。以下是VBA代码:

 Sub Refresh()
 ActiveWorkBook.RefreshAll 
 End Sub

问题:

  1. 当我第一次运行我的宏时,执行需要 5 分钟,而我的 数据透视表未使用新数据更新。

  2. 当我第二次运行它时,它执行得很完美。

我希望我的宏在第一次运行时完美执行。

非常感谢任何帮助。

注意:这是我的第一篇文章,所以请容忍我的修改。

最佳答案

我已经解决了我的问题:

  1. 我删除了宏并使用了一个 Active-x-Control 按钮。因此,在 button_click() 上将 ExternalData 刷新为以及数据透视表

  2. 所以,这是代码:我删除了下面的代码

    ActiveWorkBook.RefreshAll

并更新为

Private Sub CommandButton1_Click()
Dim Data_query As Worksheet
Set Data_query = Sheets("Data")
Data_query.Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Application.ScreenUpdating = False
Sheets("sheet1").Select
Sheets("sheet1").PivotTables("PivotTable1").PivotCache.Refresh
Sheets("sheet1").PivotTables("PivotTable1").RefreshTable
End Sub

所以现在 ExternalDatapivotTables 同时刷新。

关于sql-server-2008 - 首次运行时自动刷新 Excel 中的数据透视表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16151084/

相关文章:

c# - 服务器无法生成错误 "The primary key column of type ' DateTime'。”

php - 读取Excel数据(Rich Excel Data)

excel - 无法按日期对数据透视表进行排序

mysql - 按客户分组并按月列透视查询显示的MySQL销售表

sql - 如果值为空,如何将值返回给 sqldatareader?

sql - MSSQL - 选择在两列中找到的不同产品

sql - 在 SQL Server 2008 中加密数据库表

vba - 如何将 32 位 excel VBA 代码转换为在 64 位 excel 上运行?

r - 根据代码和日期过滤数据

python - Python中的数据透视表