我有一个 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 的回答,为我指明了正确的方向!