C#返回值中的工作表Function.CountIfs(…)是一个2 dim对象数组
我的问题是,我想在Excel中使用C#中的WorksheetFunction
方法CountIf
。
而且我总是从那个函数中得到一个2个暗淡的对象数组
double[,] zn1 = wsf.CountIfs(cSheet.Range[cSheet.Cells[13, 1], cSheet.Cells[20, 1]], sName + sName);
(它只适用于double[,] zn1
或var zn1
,否则我会收到一个对象数组obj[,]
不能转换为double
或double[]
, string[]
等的错误。
其中wsf
被定义为
Excel.Application xl = new Excel.Application(); Excel.WorksheetFunction wsf = xl.WorksheetFunction;
所以当我运行它时,我得到一个2个暗淡的对象数组,它和Range有相同的长度,我正在寻找,所有的条目都包含相同的数字“-2146826273”。
如果我将数组转换为1 dim double数组,返回值为System.Double[]
。
object[] to = zn1.Cast<object>().ToArray(); object[] res = to as object[]; double[] sRes; sRes = res.OfType<double>().ToArray();
所有其他WorksheetFunction
方法运行良好,没有错误。
所以我的问题是,我如何得到WorksheetFunction
方法CountIfs(...)
?
是的,我必须使用WorksheetFunction
方法,我不能像string公式一样input。
嗯…我发现了这个问题。
它必须是这样的:
var xl = Globals.ThisAddIn.Application; Excel.WorksheetFunction wsf = xl.WorksheetFunction;
并不是这样的:
Excel.Application xl = new Excel.Application(); Excel.WorksheetFunction wsf = xl.WorksheetFunction;
试着检查你的公式,错误号(“-2146826273”)表示问题在公式内。
公式错误检查和特定的错误 。