我想编写一个迭代文本文件的应用程序,用分号分隔内容,并搜索另一个Excel文件中特定列的每个值。
我能够在Excel中打开文本文件并以正确的方式打开(我使应用程序可见并检查其格式是否正确)。现在,如果我遍历文本表并使用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_find
,current_find.Cells[3].Value2
是" 42"或类似的东西,但不是我期望的结果。
如果有人可以请给我一个暗示,甚至是一个很棒的解决方案。谢谢:))
答案 0 :(得分:0)
抱歉,我发现了自己的错误,如果其他人也这样做了,这就是答案:
我认为Excel.Find方法返回带匹配的行,但似乎返回带有匹配的Cell。所以我更正了current_find.Cells[3].Value2
到current_find.Value2
,我很高兴。