2011-01-12 4 views
0

내가 시도 :AutoIt이 부하 엑셀 추가 기능

$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에서 다른 것들이 필요하기 때문입니다.

업데이트 :

$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

답변

0

참으로 이상한 문제. 애드온은 설치시에만 작동 할 것입니다. 그것은 엑셀 애드온이 어떻게 동작해야하는지가 아니기 때문에, 그것을 자동화하려고 할 때 이상한 행동을 보는 이유입니다.

작동하려면 애드온을 다시 설치해야하는 경우 실제로 유일한 해결책은 애드온을 다시 설치하는 것입니다.

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

귀하 또는 귀하의 본인이 작성한 애드온 인 경우, 애드온 자체에서 문제를 식별하고 싶을 수 있습니다. 정상적인 작동 모드가 잘 작동한다는 것을 확신 할 수 있습니다. :)) 보너스 팁으로

, 당신은이 작업을 수행 할 수 있습니다 :이 필요한 경우

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

그것은 적절한 위치에 파일을 복사합니다, 그렇지 않으면 혼자 남아 있습니다.