首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >第一次运行时自动刷新excel中的数据

第一次运行时自动刷新excel中的数据
EN

Stack Overflow用户
提问于 2013-04-22 15:39:02
回答 2查看 3.9K关注 0票数 3

背景: I有2张excel工作表:

  1. 包含枢轴表和宏“刷新”
  2. 来自SQL server的数据

宏包含VBA代码,用于自动刷新数据和更新枢轴表。数据每晚都在更新。下面是VBA代码:

代码语言:javascript
运行
复制
 Sub Refresh()
 ActiveWorkBook.RefreshAll 
 End Sub

问题:

  1. 当我第一次运行我的宏时,执行它需要5分钟,并且我的透视表没有用新的数据更新。
  2. 当我第二次运行它时,它执行得非常完美。

我希望我的宏在第一次运行时就能执行得很好。

任何帮助都是非常感谢的。

注:这是我的第一篇帖子,所以请容忍我的编辑。

EN

回答 2

Stack Overflow用户

发布于 2013-04-25 20:31:28

我已经解决了我的问题:

  1. 我移除宏,使用Active-x-Control button.So,在button_click()上刷新ExternalDatapivotTables
  2. 下面是代码:我删除了下面的代码 ActiveWorkBook.RefreshAll

并更新为

代码语言:javascript
运行
复制
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都可以同时刷新。

票数 1
EN

Stack Overflow用户

发布于 2013-04-22 17:44:47

当您打开工作簿时,可能会同时打开其他工作簿?只使用宏工作簿尝试它。此外,指定带透视表的工作表也可以工作。sheet1.refreshall

另一种方法是使用api设置计时器,并指定要刷新的时间。

最后一种方法是在打开工作簿时设置刷新,然后转到此工作簿,打开时将其放入代码中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16151084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档