【发布时间】:2013-05-28 16:11:41
【问题描述】:
我有一个 Excel 文件,它自动从外部数据库加载数据(通过数据连接到 Accesss 数据库,该数据库又链接到 Sharepoint 表)。我需要自动化以下过程:
- 打开 Excel 文件
- 等待数据刷新
- 运行宏(在此文件中)
- 关闭文件
我的脚本是:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("excel spreadsheet.xlsm")
WScript.Sleep 1000 * 60 * 5
objExcel.Run "macro_name"
objWorkbook.close False
objExcel.Application.Quit
但是,无论我在 WScript.sleep 中设置什么延迟,它都不会更新数据;相反,它会在电子表格中已有的数据上运行宏。谁能帮忙,拜托!
解决方案
最后(并且得益于几天的现场测试),以下似乎是最干净和最有效的:
- 从 VB 脚本中完全删除“WScript.Sleep 1000 * 60 * 5”行
- 在 Excel 中,清除每个连接的“属性”中的“启用后台刷新”复选框
-
在主代码之前的宏中添加以下行
ActiveWorkbook.RefreshAll
非常感谢 Philip 和 Santosh 的回答,为我指明了正确的方向!
【问题讨论】:
标签: excel vbscript database-connection updates vba