excel.Range.Find返回错误的值C#
我想编写一个应用程序,用分号分隔的内容在文本文件上迭代,并在另一个Excel文件的特定列中搜索每个值 我能够在Excel中打开文本文件,并且它是以正确的方式打开的(我使应用程序可见,并检查其格式是否正确)。现在,如果我迭代文本表并使用excel.Range.Find返回错误的值C#,c#,excel,interop,excel-interop,C#,Excel,Interop,Excel Interop,我想编写一个应用程序,用分号分隔的内容在文本文件上迭代,并在另一个Excel文件的特定列中搜索每个值 我能够在Excel中打开文本文件,并且它是以正确的方式打开的(我使应用程序可见,并检查其格式是否正确)。现在,如果我迭代文本表并使用Excel.Range.Find方法,它总是返回错误的行 Microsoft.Office.Interop.Excel.Range current_find = usedRange_2.Cells[3].Find((String)(row.Cells[7])
Excel.Range.Find
方法,它总是返回错误的行
Microsoft.Office.Interop.Excel.Range current_find = usedRange_2.Cells[3].Find((String)(row.Cells[7]).Value2
Microsoft.Office.Interop.Excel.Range first_find = null
//for each row in tableOftextFile
if (first_find == null && current_find!=null)
{
first_find = current_find;
}
do
{
if (((String)current_find.Cells[3].Value2).Contains((String)row.Cells[7].Value2))
{
//this part is never reached somehow.
break;
}
else
{
current_find = usedRange_2.FindNext(current_find);
}
} while (current_find!=first_find && current_find!=null);
我的应用程序中的一切都很好,所以工作手册、工作表或任何东西都应该没有问题
“查找”操作必须找到某些内容,因为这些值存在,我可以在Excel应用程序中手动搜索它们并获得正确的结果,但例如,如果我搜索值“40”,结果返回到current\u Find
,current\u Find.Cells[3]。值2
为“42”或类似的值,但不是我期望的结果
如果有人能给我一个提示,甚至是一个解决方案,那将是伟大的。谢谢:)对不起,我发现了我的错误,如果其他人也这样做,下面是答案:
我认为Excel.Find方法会返回匹配的行,但它似乎会返回匹配的单元格。因此,我将
current\u find.Cells[3].Value2
更正为current\u find.Value2
,我可以走了。对不起,我发现了我的错误,如果其他人也这样做,下面是答案:
我认为Excel.Find方法会返回匹配的行,但它似乎会返回匹配的单元格。因此,我将current\u-find.Value2[3].Value2修改为current\u-find.Value2
,我可以走了