У меня есть файл макроса Excel, содержащий несколько листов. Используя приведенный ниже код, я пытаюсь найти листы, в которых содержится указанная c строка. Код работает нормально, как и ожидалось.
Проблема заключается в том, что при попытке открыть файл macro excel появляется всплывающее окно (Microsoft Visual Basi c), и мы предполагаем нажать кнопку «конец», чтобы отключить это окно. Но это будет трудно при обработке тысяч файлов макрокоманд.
Я попытался установить excel.DisplayAlerts = $false
. Но это даже не тренировки. Пожалуйста, предложите способ подавить это окно самим кодом. (Прилагается снимок окна, для справки)
$before = @(Get-Process [e]xcel | %{$_.Id})
$excel = New-Object -comobject Excel.Application
$ExcelId = Get-Process excel | %{$_.Id} | ?{$before -notcontains $_}
$excel.Visible = $false
$excel.DisplayAlerts = $false
$excel.AskToUpdateLinks = $false
$workbook = $excel.Workbooks.Open('D:\dinesh\worksheetArea\workbook1.xlsm')
For($i = 1 ; $i -le $workbook.Sheets.count ; $i++)
{
$worksheet = $workbook.sheets.item($i)
$search = $worksheet.usedRange.Find('ServerId::50012')
If($search){
$final_list += worksheet.Name
}
}
if (!$Workbook.saved){
$workbook.save()
}
$workbook.close()
$excel.quit()
$excel = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()