excel.Range.Find returns 错误值 C#

excel.Range.Find returns wrong value C#

我想编写一个应用程序迭代一个文本文件,内容以分号分隔,并在另一个 Excel 文件的特定列中搜索每个值。

我能够在 Excel 中打开文本文件,并且打开方式正确(我使应用程序可见并检查其格式是否正确)。现在,如果我遍历文本 table 并使用 Excel.Range.Find 方法,它总是 returns 错误的行。

    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_findcurrent_find.Cells[3].Value2 是“42”或类似的东西,但不是我预期的结果。

如果有人可以给我一个提示,甚至是一个很棒的解决方案。谢谢:)

抱歉,我发现了我的错误,如果其他人也犯了同样的错误,这里是答案:

我认为 Excel.Find 方法 Returns 匹配的行,但似乎 return 匹配的单元格。所以我将 current_find.Cells[3].Value2 更正为 current_find.Value2,我很高兴。