“如何修复错误”;OleAut报告类型不匹配;在C#中使用Countif时?
我试图在表“Products”的B列(CustomerName)中使用函数COUNTIF。但是我犯了一个错误。 有人能帮我解释为什么我会出错,以及如何修复它吗。 非常感谢你。“如何修复错误”;OleAut报告类型不匹配;在C#中使用Countif时?,c#,excel,interop,excel-interop,C#,Excel,Interop,Excel Interop,我试图在表“Products”的B列(CustomerName)中使用函数COUNTIF。但是我犯了一个错误。 有人能帮我解释为什么我会出错,以及如何修复它吗。 非常感谢你。 void Duplicate() { int-ketqua=1; 双t; GetActiveExcelFile(); Excel.Worksheet esh=oWB.Worksheets[“订单详细信息”]; 长尾排; lastRow=esh.Cells[esh.Rows.Count,2].End(Excel.XlDir
void Duplicate()
{
int-ketqua=1;
双t;
GetActiveExcelFile();
Excel.Worksheet esh=oWB.Worksheets[“订单详细信息”];
长尾排;
lastRow=esh.Cells[esh.Rows.Count,2].End(Excel.XlDirection.xlUp).Row;
Excel.Application a=新的Excel.Application();
如果(lastRow==55)
对于(int i=2;i 1)
{
ketqua=1;
打破
}
其他的
ketqua=0;
}
}
}
我相信是在您创建新的Excel.Application时。这就是我的问题所在。您正在引用新应用程序上已声明的工作表变量。我对编码还不熟悉,希望这能有所帮助
这看起来更像是一个评论。如果这是一个答案,添加一个web资源来支持您的答案可能会有所帮助。
void Duplicate()
{
int ketqua = 1;
Double t;
GetActiveExcelFile();
Excel.Worksheet esh = oWB.Worksheets["Order detail"];
long lastRow;
lastRow = esh.Cells[esh.Rows.Count, 2].End(Excel.XlDirection.xlUp).Row;
Excel.Application a = new Excel.Application();
if (lastRow == 55)
for (int i = 2; i <= lastRow; i++)
{
Excel.Range objRange = (Excel.Range)esh.Cells[i, 2];
String strData = objRange.get_Value(System.Type.Missing).ToString(); //get the value cell[i,2]
if (strData != "")
{
t = a.WorksheetFunction.CountIf(esh.get_Range("B2","B55"), strData);
if (t > 1)
{
ketqua = 1;
break;
}
else
ketqua = 0;
}
}
}