背景:我有2张excel表:
宏包含 VBA代码,用于自动刷新数据和更新数据透视表。数据每晚更新。以下是 VBA代码:
Sub Refresh()
ActiveWorkBook.RefreshAll
End Sub
问题:
当我第一次运行我的宏时,需要5分钟来执行我的 数据透视表未使用新数据更新。
当我第二次运行时,它会完美执行。
我希望我的宏在第一次运行时完美执行。
非常感谢任何帮助。
注意:这是我的第一篇文章,所以请容忍我的编辑。
答案 0 :(得分:1)
我解决了我的问题:
我删除了Macro并使用了 Active-x-Control 按钮。因此,在button_click()
上刷新ExternalData
以及pivotTables
< / p>
所以,这是代码:我删除了下面的代码
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
现在,ExternalData
和pivotTables
同时刷新。
答案 1 :(得分:0)
有可能当您打开工作簿时,您可以同时打开其他工作簿吗?仅使用宏工作簿尝试它。另外,使用数据透视表指定工作表也可以。 sheet1.refreshall
另一种方法是使用api设置计时器并指定要刷新的时间。
最后一种方法是在打开工作簿时设置刷新,转到此工作簿,然后在打开时输入代码。