我使用以下Powershell脚本打开Excel文件,运行宏(执行ODBC数据刷新),保存文件然后关闭它。
$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
我的问题是数据没有刷新。
我认为这可能是因为文件在刷新完成之前保存并关闭。它需要大约15分钟,所以我添加了'Start-Sleep -s 1200'(20分钟)线 - 但由于某种原因,睡眠命令没有得到尊重。
我不确定是否需要睡眠线,或者是否有其他原因导致数据无法刷新。此外,我不确定为什么睡眠命令不被尊重。
任何帮助非常感谢