Vba 当.open导致挂起时,使用Powershell在Excel文档上运行宏
这可能是两个问题的组合,但我对多种解决方案持开放态度 我使用以下代码使用Powershell打开Excel文件Vba 当.open导致挂起时,使用Powershell在Excel文档上运行宏,vba,excel,powershell,automation,Vba,Excel,Powershell,Automation,这可能是两个问题的组合,但我对多种解决方案持开放态度 我使用以下代码使用Powershell打开Excel文件 $step=$args[0] $excel = New-Object -ComObject Excel.Application $excel.Visible = $True $excel.WindowState = 'xlMaximized' $workBook = $excel.Workbooks.Open($step) 当此Excel文件打开时,它会自动运行多个宏以下载第二个Ex
$step=$args[0]
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$excel.WindowState = 'xlMaximized'
$workBook = $excel.Workbooks.Open($step)
当此Excel文件打开时,它会自动运行多个宏以下载第二个Excel文件。我需要关闭第一个Excel文件,看起来有一个宏可以调用,但是Powershell在调用Workbooks.Open()
后,实际上从未返回到提示符(PS C:\>
),我假设是因为宏生成的用户表单仍然处于打开状态(此时它只包含一个关闭按钮,用于触发exit宏)
那么,是否有任何方法可以让Powershell返回到提示符以运行exit宏,或者有其他方法可以关闭第一个Excel文件而不关闭第二个Excel文件
由于第二个文件是由第一个文件中的宏生成的,因此它将始终处于与第一个文件相同的进程中,因此使用“停止进程”将关闭两个窗口。尝试禁用警报以抑制弹出:
$step=$args[0]
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
$excel.WindowState = 'xlMaximized'
$excel.DisplayAlerts = $false
$workBook = $excel.Workbooks.Open($step)
不幸的是,它似乎不起作用,我不确定userform是否真的被视为警报。@JamesBartlett我也不认为它值得一试。你能不能修改第一个文件中的宏,使其(a)不显示userform或(b)完成后自动关闭userform?我没有更改宏的权限,我没有excel工作表,我只是自动执行手动过程以节省时间。