匹配function? VBA不能正常工作
我有一个下面的代码,我有单元格B11,B19和B25“名称”,我期待的结果19或25的代码,但它返回Y = 1。 谁能告诉我有什么问题?
Sub mat() Y = Application.Match("name", ActiveSheet.Range("B19:B30"), 0) MsgBox Y End Sub
根据MATCH的文件 :
MATCH返回lookup_array中匹配值的位置,而不是值本身。
和0
作为可选的第三个参数( match_type
):
如果match_type为0,则MATCH查找与lookup_value完全相同的第一个值。 Lookup_array可以以任何顺序。
因此,返回的1
指向数组Range("B19:B30")
B19
上的位置Range("B19:B30")
,并且代码示例的行为确实如预期。
Application.Match("name", ActiveSheet.Range("B19:B30"), 0)
MATCH函数在单元格范围内search指定的项目,然后返回该项目在该范围内的相对位置
所以parsing参数ActiveSheet.Range("B19:B30")
意味着B19
等于相对位置 =1
。
添加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)