C#代码中的Excel引用问题

时间:2011-09-15 14:01:40

标签: c# excel excel-vba office-interop excel-interop vba

我有一个在Excel中使用WORKDAY()函数的电子表格(我相信它存在于Analysis Toolpak库/包中/无论你在Excel中调用它)。当我手动打开此电子表格并调用此函数时,它表现良好。

我有一个宏引用了WORKDAY()函数的单元格:

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

当我手动打开电子表格后运行宏时,此代码执行正常。问题是当我尝试打开电子表格并从我的C#代码运行宏时。它会在尝试获取startDate的值时失败。当我看到那个单元格时,我看到了#VALUE!参考错误。当我从C#代码打开电子表格时,似乎没有加载正确的引用。

有谁知道如何解决此问题?

1 个答案:

答案 0 :(得分:3)

我必须做的是强制加载.xla加载项:

app.Workbooks.Open(file_name)

其中appMicrosoft.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