我想编写一个宏来获取A列中的最后一项,并检查它是否存在于列B到D的任何位置。但是,以下代码永远不会找到匹配并返回"不会存在":
Sub MatchInRange()
Dim LastItem As Range
Set LastItem = Range("A1").End(xlDown)
If Not IsError(Application.Match(LastItem, "B:D", 0)) Then
MsgBox "Exists in range"
Else
MsgBox "Doesn't exist"
End If
End Sub
但是当使用Find:
重写时它会起作用Sub FindInRange()
Dim LastItem As Range
Set LastItem = Range("A1").End(xlDown)
If Not Range("B:D").Find(LastItem) Is Nothing Then
MsgBox "Exists in range"
Else
MsgBox "Doesn't exist"
End If
End Sub
有人能告诉我第一个代码我做错了什么吗?
答案 0 :(得分:0)
匹配适用于1行或1列。您使用3 - B , C 和 D 。重写第一个公式如下:
Sub TestMe()
Debug.Print WorksheetFunction.match("TestValue", Range("B:B"), 0)
End Sub