Я хочу удалить много файлов Excel в папке одновременно. Поэтому я пишу код ниже, но когда он работает, терминал вышел из системы Delete Method of Range class failed
ошибка выскакивает. и, что еще более запутанно, процесс удаления на некоторых листах выполняется успешно. Я думаю, это вызывает от не может сделать выпуск объекта листа PowerShell хорошо.
Кто-нибудь может мне помочь? С уважением.
# Launch Excel
$excel = New-Object -ComObject Excel.Application -Property @{Visible = $false}
$baseDir = Convert-Path $(Split-Path $MyInvocation.InvocationName -Parent)
$files = Get-ChildItem -Recurse | ? { $_.Extension -eq ".xlsx" }
# "${baseDir}\{$_.name}"
# Open Book
$files|
%{
Write-Host $_.Name
$excel.Workbooks.Open("${baseDir}\" + $_.name) | %{
$_.Worksheets | %{
# Delete Column
# $_.Activate
Write-Host $_.Name
#$_.Columns.Item("J").Delete()
#$_.Columns("J:J").EntireColumn.Delete()
#$_.Columns.item(3).Insert()
#$_.Range("J:J").Delete()
$_.Columns("J").Delete()
}
$_.Save()
}
}
# Excel
$excel.Quit()
\[System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($excel) | Out-Null