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

それが動作します。しかし、2 つの異なるアドインが必要なため、前者のソリューションを好みます。

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

これはトリックを行うようです。初めてインストールして動作しました。その後、そうではありませんでした。インストールしても、2回目は実行されません。たぶん、誰かがよりエレガントなソリューションを説明または提供できますか?

4

1 に答える 1

0

確かに奇妙な問題。アドオンは、インストール時にのみ操作を行うようですか? これは Excel アドオンの本来の動作ではないため、自動化しようとすると奇妙な動作が見られます。

アドオンを機能させるために再インストールする必要がある場合、実際に唯一の解決策はアドオンを再インストールすることです。

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

これがあなたまたはあなた自身のビジネスの誰かによって書かれたアドオンである場合、アドオン自体の問題を特定したいかもしれません. 通常の操作モードが正常に機能することを安全に保証できます。:))

おまけのヒントとして、これを行うことをお勧めします。

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

必要な場合はファイルを適切な場所にコピーしますが、それ以外の場合はそのままにします。

于 2011-02-09T09:18:03.810 に答える