Pregunta

Me trató:

$sAddIn = "H:\prog\essxleqd.xla"
$oExcel = ObjCreate("Excel.Application")
$oExcel.Visible = 1
$oExcel.WorkBooks.Add
$oAddIn = $oExcel.AddIns.Add($sAddIn)
$oAddIn.Installed = True
$oExcel.WorkBooks.Open("H:\Balance_Inquiry.xls")

Cuando hago:

Run('"c:\pathtoexcel\excel.exe" "c:\pathtoaddin\addin.xla"')

Se trabajará. Pero yo prefiero la primera solución porque necesito dos diferentes complementos.

$sAddIn = "H:\prog\essxleqd.xla"
$oExcel = ObjCreate("Excel.Application")
$oExcel.Visible = 1
$oExcel.WorkBooks.Add
$oAddIn = $oExcel.AddIns.Add($sAddIn)
$oAddIn.Installed = False
$oAddIn.Installed = True
$oExcel.WorkBooks.Open("H:\Balance_Inquiry.xls")

Esto parece hacer el truco. La primera vez que quedó instalado y funcionó. Después no lo hizo. Incluso cuando se instala no ejecuta la segunda vez. Tal vez alguien puede explicar o proporcionar una solución más elegante?

¿Fue útil?

Solución

problema

extraño. Parece que el complemento sólo lo hará sus operaciones cuando se instala? No es así como complementos de Excel deben comportarse, y es por eso que está viendo un comportamiento extraño cuando se trata de automatizarlo.

Si las necesidades de montaje anexo a ser reinstalados a trabajar, a continuación, de hecho la única solución es volver a instalar el complemento.

$oAddIn.Installed = False
$oAddIn.Installed = True

Si se trata de un complemento que está escrito por usted o alguien de su propio negocio, entonces puede que desee para identificar el problema en el propio complemento. Les puedo asegurar con certeza que el modo normal de operación funciona bien. :))

Como dato adicional, es posible que desee hacer esto:

$oAddIn = $oExcel.AddIns.Add($sAddIn, True)

Se copia el archivo en la ubicación apropiada si ello es necesario, de lo contrario, se queda solo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top