问题Powershell通过macros刷新Excel ODBC

我正在使用以下Powershell脚本来打开一个Excel文件,运行一个macros(它执行ODBC数据刷新),保存该文件,然后closures它。

$ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null $ErrorActionPreference = "Continue" Start-Transcript -path "\\xxx\report automation\eurcauto.txt" -append $objectExcel = new-object -c excel.application $objectExcel.displayAlerts = $false # don't prompt the user $Classeur = $objectExcel.workbooks.open("\\yyy\Reports\Operate Metrics\Automation\EURC_Weekly_Metrics.xlsm", $null, $true) $objectExcel.run("AutoUpdate") Start-Sleep -s 1200 $Classeur.saveas("\\yyy\Operate Metrics\EURC Reports\EURC_Weekly_Metrics_$((Get-Date).ToString('dd-MM-yyyy')).xlsm") $Classeur.close($false) $objectExcel.quit() spps -n excel Remove-Item "\\yyy\Operate Metrics\Automation\EURC_Weekly_Metrics.xlsm" Start-Sleep -s 60 Copy-Item "\\yyy\Operate Metrics\EURC Reports\EURC_Weekly_Metrics_$((Get-Date).ToString('dd-MM-yyyy')).xlsm" "\yyy\Operate Metrics\Automation\EURC_Weekly_Metrics.xlsm" Stop-Transcript 

我的问题是数据没有刷新。

我认为这可能是因为该文件在刷新完成之前保存并closures。 大约需要15分钟,所以我添加了“Start-Sleep -s 1200”(20分钟)一行 – 但由于某种原因,睡眠命令没有被遵守。

我不确定是否需要睡眠线,或者如果有其他原因数据不刷新。 此外,我不知道为什么睡眠命令不被尊重。

任何帮助不胜感激