我有一个以下代码,我在单元格B11,B19和B25中有“名称”,我希望代码的结果为19或25,但它返回Y = 1。谁能告诉我这是什么问题?。
Sub mat()
Y = Application.Match("name", ActiveSheet.Range("B19:B30"), 0)
MsgBox Y
End Sub
答案 0 :(得分:4)
MATCH返回lookup_array中匹配值的位置,而不是值本身。
并使用0
作为可选的第三个参数(match_type
):
如果match_type为0,MATCH将找到与lookup_value完全相等的第一个值。 Lookup_array可以按任何顺序排列。
因此,返回的1
引用数组B19
中Range("B19:B30")
上的位置,代码示例确实按预期运行。
答案 1 :(得分:1)
Application.Match("name", ActiveSheet.Range("B19:B30"), 0)
MATCH函数搜索一系列单元格中的指定项目,然后返回该项目的相对位置
因此,解析参数ActiveSheet.Range("B19:B30")
意味着B19
等于相对位置 =1
。
答案 2 :(得分:0)
添加slgn
Sub mat()
Y = Application.Match(slng(range("a4").value), ActiveSheet.Range("B19:B30"), 0)
MsgBox Y
End Sub
EX2:
Application.WorksheetFunction.Match(CLng(TextBox1.Text), sheet110.Range("B6:B" & ls), 0)