发出Powershell以通过宏刷新Excel ODBC

发出Powershell以通过宏刷新Excel ODBC,excel,powershell,odbc,vba,Excel,Powershell,Odbc,Vba,我正在使用以下Powershell脚本打开Excel文件,运行宏(执行ODBC数据刷新),保存文件,然后关闭它 $ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null $ErrorActionPreference = "Continue" Start-Transcript -path "\\xxx\report automation\eurcauto.txt" -append $objectExcel = new

我正在使用以下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分钟,所以我添加了“启动睡眠-s1200”(20分钟)行,但由于某些原因,睡眠命令没有得到遵守

我不确定是否需要睡眠线路,或者数据不刷新是否还有其他原因。我也不知道为什么睡眠命令没有得到遵守


非常感谢任何帮助

您是否尝试过
$objectExcel.Run(“EURC\u Weekly\u Metrics.xlsm!AutoUpdate”)
?我尝试过,但没有使用sleep命令。似乎没有任何区别。您是否尝试过简单的宏(如仅msgbox)来显示一些消息,它是否可以运行。Excel具有阻止宏在启动Excel时运行的安全性,请尝试将宏安全性设置为低(启动时运行宏而不发出警报)。