2011-09-15 16 views
2

私はExcelでWORKDAY()関数を使用しているスプレッドシートを持っています(これはAnalysis Toolpakライブラリ/ package/Excelで呼び出すもの)。このスプレッドシートを手動で開き、この関数を呼び出すとうまく動作します。ExcelのC#コードの問題

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

Iスプレッドシートを開いた後、マクロを実行すると、手動でこのコードは、罰金実行:

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

誰でもこの問題を解決する方法を知っていますか?それ以外の場合は、分析アドインをロードし、appMicrosoft.Office.Interop.Excel.Application それが既に開いて、次に何も起こらない場合のインスタンスである

app.Workbooks.Open(file_name) 

を:私がしなければならなかった何

+0

一般にC#で開くときにマクロが無効になっていると問題はありますか?任意のマクロを実行できることを確認できますか? –

+0

マクロが実行されます。これは、日付を設定しようとしている行のマクロの途中で停止します。 – Dismissile

+0

オートメーションでExcelを開くと、自動的にアドインが読み込まれることはありません。コード内で行う必要があります。 http://support.microsoft.com/kb/213489 –

答えて

3

は使用.xlaアドインの読み込みを強制されます。アドイン、それのパスを見つけるにはオフィス

  • のバージョンのOffice 11に依存します。C:\ Program Files \ Microsoft Officeの\ OFFICE11 \ライブラリ\分析\ ANALYS32.XLL
  • オフィス12:C :\ Program Files(x86)\ Microsoft Office \ Office12 \ Library \ Analysis \ ANALYS32.XLL
関連する問題