【发布时间】:2015-04-19 09:14:27
【问题描述】:
所以我开发了一个 Powershell 脚本来刷新大约 40 个大的 excel 文件并保存它们,在这个脚本中我运行一个 excel 宏来传递 excel (ODBC) 连接参数,然后在刷新后从 excel 文件中删除它们是完毕。我唯一的问题是(对于这 40 个文件中的 5 个文件)当 RefreshAll 命令启动时,Powershell 不会等待 Excel 完成刷新并传递到下一个命令,该命令是使连接无效的宏,这会导致错误宏中的“1004”(文件还在刷新时无法访问excel连接。)
经过一番研究,我知道在Powershell v2中,有后台作业的概念,但在我的情况下,这不是一个备用进程,它属于Excel进程,所以我的Powershell应该不用等待Excel退出继续执行,相反,我需要excel保持打开才能继续执行Powershell。
我也知道 start-sleep 命令不是最适合我的情况,因为刷新结束没有固定的时间值,每个文件都有它的时间,而且每个月的每个时期都有它的时间(数据量每天都在增加,直到月底)。
所以我的问题是:是否可以让 Powershell 测试 Excel 文件是否已刷新其数据,如果是,它会继续,否则它会等待更长时间?
【问题讨论】:
标签: excel vba powershell