我负责更新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
答案 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
这是刷新活动工作簿的预定义命令(在更改变量之后)。