自动刷新数据透视表VBA代码

时间:2015-08-19 11:03:54

标签: excel vba excel-vba

我负责更新Excel电子表格,该电子表格每天从Access数据库中提取信息。我的excel电子表格所需的所有数据都可供我使用,我需要做的就是点击刷新按钮。

我已经提供了一个VBA代码,它可以满足我对小文档的需求,但是,当我打开较大的文件时,它无法正常工作。代码打开指定的工作簿但不运行其刷新步骤 - 它只是保存和关闭文档。我试图延迟时间以便有时间进行刷新,但似乎刷新从未实际开始在较大的文件上。

有什么想法吗?我使用的代码如下

Sub Autorefresh()

Dim Excel
Set Excel = CreateObject("Excel.Application")

Excel.Visible = True
Excel.DisplayAlerts = False
Excel.AskToUpdateLinks = False
Excel.AlertBeforeOverwriting = False

Set Workbook = Excel.Workbooks.Open("MyWorkbook.xlsx", Password:="MyPassword")
Workbook.RefreshAll
Workbook.Save

Excel.Quit
Set Workbook = Nothing
Set Excel = Nothing

End Sub

1 个答案:

答案 0 :(得分:0)

您使用的工作簿是VBA预定​​义对象,稍微改变您的代码:

Sub Autorefresh()

Dim Excl
Set Excl = CreateObject("Excel.Application")

Excl.Visible = True
Excl.DisplayAlerts = False
Excl.AskToUpdateLinks = False
Excl.AlertBeforeOverwriting = False

Set Wbk = Excel.Workbooks.Open("MyWorkbook.xlsx", Password:="MyPassword")
Wbk.RefreshAll
Workbook.Save

Excel.Quit
Set Wbk = Nothing
Set Excl = Nothing

End Sub

或者在全部刷新和另存为之间添加额外代码 Workbook.RefreshAll这是刷新活动工作簿的预定义命令(在更改变量之后)。