我有一个小型宏程序,该程序匹配两个工作表(大数据)之间的值。
我正在使用 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语句来找到匹配项,因为工作表包含大量数据。
希望您能帮助我。预先感谢。
答案 0 :(得分:2)
您正在寻找O5:O10中的比赛。如果您搜索的文本在O5中,则您的匹配函数会给您一个'1',因为它是在您的范围的第一个单元格中找到的。
使用
sDataFound = Sheets("Data").Cells(lMatchFound + lRowRange - 1, 15)
您会没事的。