VBA Match忽略我的range参数并返回错误的值

时间:2014-05-30 15:47:03

标签: vba match

fnd = "MultistateIndicator1.1.St_Caption"

'find the row with the text to change
nRowSavedRecord = Application.Match(fnd, Sheets("Sheet1").Range("D1027:D6000"), 0)

当这些行明显超出8的范围时,会返回102D1027:D6000之类的值,此处是它认为找到的匹配项:

注意:MultistateIndicator1.1.St_Caption

和匹配找到:EnablePushButton.1.St_Caption(在D栏第8行)

我在参数中有0,因此它找到完全匹配。

2 个答案:

答案 0 :(得分:1)

Match返回的行号相对于源范围的第一行,从1开始。
8的值代表行1027 + 8 - 1,即Range("D1027:D6000").Cells(8)

答案 1 :(得分:1)

WorksheetFunctions.Match()返回相对位置。您可能希望查找单元格D1034以查找找到的值。