以下是我正在使用的代码:
Dim Name As Long
With Application.WorksheetFunction
Name= .Match("Test:", Range("A1:A1000"), -1)
End With
我正在寻找的是“测试:你好”,但是Hello这个词并不总是遵循测试,所以我不想使用完全匹配。我看到Instr
函数,但我想知道这部分匹配的行。
答案 0 :(得分:4)
您可以使用公式中的通配符*
来捕获Test:
之后的任何内容。
我们想要准确地返回,所以第三个标准应该是0
:
Dim Name As Long
With Application.WorksheetFunction
Name= .Match("Test:*", Range("A1:A1000"), 0)
End With
虽然如果找不到匹配项,这种方法vba会出错。
我们可以删除WorksheetFunction部分,vba将传递错误,以便我们可以测试它:
Dim Name As Long
With Application
If IsError(.Match("Test:*", Range("A1:A1000"), 0)) then
msgbox "No match found"
Else
Name= .Match("Test:*", Range("A1:A1000"), 0)
End if
End With