在文件在后台打开但未使用时,在Excel 2010中刷新外部数据

时间:2012-11-12 17:39:44

标签: excel-vba excel-2010 excel-addins exceldatareader vba

我使用Excel 2010查询MS SQL数据库和其他Excel文件以导入数据。我为每个数据连接设置了不同的间隔(10个连接)。 在excel中,这些数据被切片并切块以创建有意义的图表,这些图表在PowerPoint中呈现。

我能够找到一个用于PowerPoint的VB广告,以便在演示文稿循环播放时自动从excel更新数据。

我保持excel文件在后台打开(在PowerPoint后面),因为PowerPoint每次刷新图表时都会尝试打开excel表。 我的问题是在Excel中,因为它没有被主动使用,数据连接不会自动刷新。

我尝试了各种解决方案,但是他们需要手动启动vb / macro,但我需要根据为数据连接提供的时间自动刷新数据。

是否有一个VB代码,我可以在Excel中使用它来刷新数据连接,同时打开excel工作簿但没有主动使用?

感谢您是否可以将我指向相关的帖子,或指导我。

提前谢谢。

3 个答案:

答案 0 :(得分:1)

如果工作表中的数据发生变化,我找到了刷新Pivot缓存的解决方案。我正在更新这篇文章以防其他人需要解决方案。非常感谢您的帮助。

Private Sub Worksheet_Change(ByVal Target As Range) 

Worksheets("Pivot table").PivotTables("PivotTable1").PivotCache.Refresh

End Sub

请点击此链接以获取有关此问题的更多信息 - http://www.get-digital-help.com/2011/06/13/auto-refresh-a-pivot-table-in-excel/#comment-52745

答案 1 :(得分:0)

听起来你已经启用了这个功能,但是当你转到数据...连接并选择一个连接/查询时,单击属性...,在使用选项卡下,您是否选择了“启用后台刷新”和“每隔X分钟刷新一次”?

即使程序没有焦点,Excel也应继续更新其查询。当我写这个回复时,我可以在后台看到Excel每分钟更新一次测试查询。

您是否尝试过其他方案...如果您没有主动使用Excel工作表,但计算机处于空闲状态,是否会刷新?如果您使用IE浏览网页?使用Chrome?即试图诊断问题是否与PowerPoint隔离。

这不应该要求VBA开始工作。

答案 2 :(得分:0)

请在此处查看我的回答:https://superuser.com/questions/232656/how-do-you-update-an-excel-file-data-refresh-and-update-formulas-without-openi

tdlr,使用http://metacpan.org/pod/Win32::Excel::Refresh如果你不想使用perl,它会附带一个Windows EXE。这使您可以从命令行运行Excel更新/刷新/宏,并且可以使用任务计划程序来运行它。