Excel VBA-Application.Match方法找不到匹配项

时间:2018-10-25 05:54:10

标签: excel vba excel-vba matching

我有一个小型宏程序,该程序匹配两个工作表(大数据)之间的值。

我正在使用 Application.Match 方法在另一个工作表中查找某个值的匹配项。

问题是,当我尝试在范围上分配行变量时,结果将获得第1行,而不是确切匹配的第7行

>

Application.Match(data1,Worksheets(“ Data”)。Range(“ O”& lRowRange &“:O”&lLastRow),0)`

lRowRange = 5

If Not IsError(Application.Match(data1, Worksheets("Data").Range("O" & lRowRange & ":O" & lLastRow), 0)) Then

     lMatchFound = Application.WorksheetFunction.Match(data1, Worksheets("Data").Range("O" & lRowRange & ":O" & lLastRow), 0)

     sDataFound = Sheets("Data").Cells(lMatchFound, 15)

End if

我没有使用LOOP语句来找到匹配项,因为工作表包含大量数据。

希望您能帮助我。预先感谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找O5:O10中的比赛。如果您搜索的文本在O5中,则您的匹配函数会给您一个'1',因为它是在您的范围的第一个单元格中找到的。

使用

sDataFound = Sheets("Data").Cells(lMatchFound + lRowRange - 1, 15)

您会没事的。