Как я могу обойти это предупреждающее сообщение Powershell?

#excel #powershell

#excel #powershell

Вопрос:

Я всегда использовал этот скрипт для автоматического открытия книги Excel, сохранения ее и использования. Поскольку рабочая книга была изменена, сценарий не работает, потому что каждый раз, когда я открываю файл, появляется всплывающее окно, предупреждающее меня об ошибках внутри рабочей книги.

Как я могу обойти эту проблему и заставить Powershell нажать кнопку «ок» в предупреждающем сообщении, чтобы продолжить обновление?

введите описание изображения здесь

 $file = 'C:UsersUserDesktopSPC_Analysis_v2.3 - 36 mesi_250_macchine_IPC - Copia - Copia.xlsm' 
$x1 = New-Object -ComObject "Excel.Application"
$x1.Visible = $false                
$enddate = (Get-Date).tostring("dd-MM-yy HH-mm-ss")  
$filename = 'C:UsersUserDesktopSPCIPCIPC_QCP - Copia '   $enddate   '.xlsm' 
$wb = $x1.workbooks.Open($file) 
$wb.RefreshAll() 
$wb.SaveAs($filename) 
$wb.Close() 
$x1.Quit() 
Remove-Variable wb,x1
  

Комментарии:

1. появляется всплывающее окно, предупреждающее меня о том, что в книге есть ошибки , как исправить эти ошибки? Без шуток. В любом случае, в VBA есть метод, вызываемый DisplayAlerts для отключения оповещений (убедитесь, что вы включили их после завершения!), Но не знаете, как вызвать его в вашем скрипте. может быть, что-то вроде $x1.DisplayAlerts=$False и $x1.DisplayAlerts=$True ? Проверьте social.technet.microsoft.com/Forums/windows/en-US /…

2. Спасибо, это работает, очень благодарен

3. Отлично! Я отправил ответ, чтобы вы могли принять его как действительный 🙂

Ответ №1:

Вы можете отключить оповещения с помощью:

$x1.DisplayAlerts=$False

Это отключит все предупреждения в Excel (кроме критических ошибок). Поскольку оно отключает все оповещения, убедитесь, что вы включили их после завершения!

$x1.DisplayAlerts=$True

Источник: https://social.technet.microsoft.com/Forums/windows/en-US/d963956a-02c4-488f-b59c-bb730b1506b0/displayalerts-false-is-not-working?forum=winserverpowershell

Информация о свойстве DisplayAlerts:

DisplayAlerts