0

我试过:

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

这似乎可以解决问题。第一次安装并工作。后来就没有了。即使安装了它,它也不会第二次执行。也许有人可以解释或提供更优雅的解决方案?

4

1 回答 1

0

真是奇怪的问题。似乎插件只有在安装时才会执行它的操作?这不是 Excel 插件的行为方式,这就是为什么您在尝试自动化它时会看到奇怪的行为。

如果需要重新安装插件才能工作,那么确实唯一的解决方案是重新安装插件。

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

如果这是由您或您自己的企业中的某个人编写的插件,那么您可能希望确定插件本身的问题。我可以放心地向您保证,正常的操作模式运行良好。:))

作为奖励提示,您可能想要这样做:

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

如果有必要,它会将文件复制到适当的位置,否则将不理会它。

于 2011-02-09T09:18:03.810 回答