Posteriormente a consultar expertos en este tema, programadores de diversas áreas y maestros hemos dado con la solución al dilema y la dejamos plasmada en esta publicación.
Solución:
Me encontré con este mismo error cuando implementé mi aplicación en una máquina sin una instalación de Excel completamente activada y con licencia. Pasé horas tratando de diagnosticar el problema. Asegúrese de verificar las instalaciones de Office para asegurarse de que estén completas.
Resolví este comportamiento con la ayuda de esta pregunta:
Comportamiento extraño de “La llamada fue rechazada por el destinatario”. excepción con Excel
El problema era simplemente que el Workbook.Open
no había terminado cuando le di un Worksheet.SaveAs
mando. Entonces, a veces, el guión funcionaba, a veces no.
Simplemente agregué una pausa en el guión después Workbook.Open
Y funcionó. Fui a buscar una propiedad Ready
que me permitió hacer exactamente lo que quería:
$excel = New-Object -ComObject "Excel.Application" -ea Stop
$wb = $excel.Workbooks.Open($workbook)
$sheet = $wb.Sheets("List")
while (-not $excel.Ready)
sleep 1
$sheet.SaveAs($csvpath,6)
Entonces, en mi caso, no tuvo nada que ver con instalaciones de Excel no activadas o dañadas.
Asegúrese de que MS Word/Excel no muestre un cuadro de diálogo que necesite una respuesta.
Establecí un punto de interrupción en la línea que causó la falla, luego configuré .Visible
para true en PowerShell, para encontrar esto:
$word.Visible = $true
Después de hacer clic en ‘Sí’ y actualizar la configuración, después de volver a ejecutar mis interacciones COM con secuencias de comandos, tuvieron éxito.