2011-09-15 70 views
2

我有一個電子表格,它使用Excel中的WORKDAY()函數(我相信它存在於分析工具庫/包/無論你在Excel中調用它)。當我手動打開此電子表格並調用此函數時,表現良好。C#代碼中的Excel引用問題

我有引用該工作日()函數中使用的小區的宏:

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

當我打開電子表格後運行宏手動代碼執行精細。問題是,當我嘗試打開電子表格並從C#代碼運行宏時。它會在嘗試獲取startDate的值時失敗。當我看着那個單元格時,我看到一個#VALUE!參考錯誤。看起來,當我從我的C#代碼打開電子表格時,它不會加載正確的引用。

有誰知道如何解決這個問題?

+0

當通過C#打開時一般禁用宏是否會出現問題?你能確認你可以運行任何宏嗎? –

+0

宏運行。它在嘗試設置日期的行的中途停止。 – Dismissile

+0

如果您通過自動化打開Excel,它不會自動加載加載項:您需要在代碼中執行此操作。 http://support.microsoft.com/kb/213489 –

回答

3

我有什麼做的是使用強制.xla插件的加載:

app.Workbooks.Open(file_name) 

其中appMicrosoft.Office.Interop.Excel.Application 如果它已經打開,然後什麼也沒有發生的實例,否則它加載的插件分析。要查找的路徑加載它取決於Office的版本

  • 辦公室11:C:\ Program Files文件\的Microsoft Office \ OFFICE11 \圖書館\分析\ ANALYS32.XLL
  • Office 12中:C :\ Program Files(x86)\ Microsoft Office \ Office12 \ Library \ Analysis \ ANALYS32.XLL