2011-01-12 67 views
0

我想:AutoIt的负载EXCELL插件

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

它将工作。但我更喜欢前面的解决方案,因为我需要在Excel中做不同的事情,这会更容易。

UPDATE:

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

这似乎这样的伎俩。似乎是我第一次运行安装并运行的脚本。事后它没有。 奇怪的是,即使它被安装,它不会执行第二次。所以每次我必须做假部分...

也许有人可以解释或提供更优雅的解决方案?

+0

你的问题是? – aphoria 2011-01-12 15:24:21

回答

0

确实存在奇怪的问题。看来这个插件只会在你安装它时执行操作?这不是Excel插件应该如何表现的原因,这就是为什么在尝试自动化时看到奇怪的行为。

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

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

如果这是由您或您自己的业务编写的插件,那么你可能需要确定在插件本身的问题。我可以放心地向您保证,正常的操作模式运作良好。 :))

作为奖励小费,你可能会想这样做:

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

将文件复制到相应的位置,如果这是必要的,否则它被单独留在家中。