2

ExcelでWORKDAY()関数を使用しているスプレッドシートがあります(これは、AnalysisToolpakライブラリ/パッケージ/Excelで呼び出すものに含まれていると思います)。このスプレッドシートを手動で開いてこの関数を呼び出すと、正常に動作します。

WORKDAY()関数が使用されているセルを参照するマクロがあります。

Dim startDate as Date
startDate = Cells(1,1)

スプレッドシートを手動で開いた後にマクロを実行すると、このコードは正常に実行されます。問題は、スプレッドシートを開いてC#コードからマクロを実行しようとしたときです。その後、startDateの値を取得しようとすると失敗します。そのセルを見ると、#VALUEが表示されます。参照エラー。C#コードからスプレッドシートを開いたときに、正しい参照が読み込まれていないようです。

誰かがこの問題を解決する方法を知っていますか?

4

1 に答える 1

3

私がしなければならなかったのは、.xla次を使用してアドインの読み込みを強制することです。

app.Workbooks.Open(file_name)

whereappは、Microsoft.Office.Interop.Excel.Application 既に開いている場合は何も起こりません。それ以外の場合は、分析アドインを読み込みます。アドインのパスを見つける方法は、Office のバージョンによって異なります。

  • Office 11: C:\Program Files\Microsoft Office\OFFICE11\Library\Analysis\ANALYS32.XLL
  • Office 12: C:\Program Files (x86)\Microsoft Office\Office12\Library\Analysis\ANALYS32.XLL
于 2011-09-15T18:13:20.250 に答える