来自C#get_Value的Excel 2007始终返回-2146826265

use*_*976 3 c# excel vba excel-2007

我有一个小的C#应用​​程序,它引用了Microsoft Excel 12.0对象库.除其他外,它从Excel单元格中读取值.它从一些较旧的Excel(.xls)文件和一些2007文件(.xlsx)中读取此值.对于所有.xls文件,该值都会正确返回,但我只获得.xlsx文件的以下值:-2146826265.

我正在阅读的单元格包含一个简单的公式:"= A1 + B1".

这是我正在使用的代码行

((Excel.Range)ws.Cells.get_Item(29, 17)).get_Value(null));
Run Code Online (Sandbox Code Playgroud)

其中ws是当前活动的工作表.

谢谢你尽你所能的帮助.

Cyr*_*don 9

get_value函数为其错误消息返回整数.这是清单:

-2146826281 = #Div/0!
-2146826246 - #N/A
-2146826259 = #Name?
-2146826288 = #Null!
-2146826252 = #Num!
-2146826265 = #Ref!     <- yours !
-2146826273 = #Value!
Run Code Online (Sandbox Code Playgroud)

这是一篇非常好的文章:

http://xldennis.wordpress.com/2006/11/22/dealing-with-cverr-values-in-net-%E2%80%93-part-i-the-problem/

从这个非常好的答案:

如何知道单元格在C#中的公式中是否有错误