Вопрос

Я старался:

$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")

Когда я делаю:

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

Это будет работать. Но я предпочитаю первое решение, потому что мне нужно два разных надстройки.

$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")

Кажется, это делает свое дело. В первый раз он был установлен и работал. После этого это не так. Даже когда он установлен, он не выполняет второй раз. Может быть, кто -то может объяснить или предоставить более элегантное решение?

Это было полезно?

Решение

Странная проблема действительно. Кажется, что аддон будет выполнять свои операции только при его установке? Это не то, как должны вести себя аддонс Excel, и именно поэтому вы видите странное поведение при попытке его автоматизировать.

Если аддон должен быть переустановлен для работы, то, действительно, единственное решение - переустановить аддон.

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

Если это аддон, который написан вами или кем -то в вашем собственном бизнесе, то вы можете определить проблему в самом аддоне. Я могу с уверенностью заверить вас, что нормальный режим работы работает хорошо. :))

В качестве бонуса вы можете сделать это:

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

Он скопирует файл в соответствующее место, если это необходимо, в противном случае он остается в покое.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top