这可能是两个问题的结合,但是我愿意接受多种解决方案。
我使用以下代码通过Powershell打开Excel文件
$step=$args[0]
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$excel.WindowState = 'xlMaximized'
$workBook = $excel.Workbooks.Open($step)
当此Excel文件打开时,它会自动运行几个宏,以下载第二个Excel文件。我需要关闭第一个Excel文件,并且看起来有一个宏可以调用,但是Powershell在调用PS C:\>
之后实际上从未返回到提示符(Workbooks.Open()
),假定是因为由宏生成的UserForm仍处于打开状态(此时只包含一个关闭按钮,这会触发退出宏)。
那么,有什么方法可以让Powershell返回到提示符以运行退出宏,还是有另一种方法可以关闭第一个Excel文件而不关闭第二个Excel文件?
由于第二个文件是由第一个宏生成的,因此它始终与第一个文件处于同一进程,因此使用Stop-Process将关闭两个窗口。
答案 0 :(得分:0)
尝试禁用警报以禁止弹出窗口:
$step=$args[0]
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$excel.WindowState = 'xlMaximized'
$excel.DisplayAlerts = $false
$workBook = $excel.Workbooks.Open($step)