我在我的程序中使用了一个 Match 函数,它的主要目的是比较用户输入的输入,然后循环到数据库中,并在每次匹配时执行一些操作。
目前,我正在处理这个:
Function Match(searchStr As Variant, matchStr As Variant) As Boolean
Match = False
If (IsNull(searchStr) Or IsNull(matchStr)) Then Exit Function
If (matchStr = "") Or (searchStr = "") Then Exit Function
Dim f As Variant
f = InStr(1, CStr(searchStr), CStr(matchStr), vbTextCompare)
If IsNull(f) Then Exit Function
Match = f > 0
End Function
然后当它被使用时:
If Match(sCurrent.Range("A" & i).Value, cell.Value) Then
这是我的问题:
这太不准确了。如果我的数据库中有“Foxtrot Hotel”,只要用户键入“F”“Fo”“Fox”“ox”“xtro”“t hot”等等,这个函数就会找到一个匹配,所以只要有一个字符串包含在完整句子中的字符。
我想要的是让我的 Match 函数只识别完整的单词。因此,在这种情况下,仅显示三个特定案例的匹配项:“Foxtrot”“Hotel”和“Foxtrot Hotel”。
我已经阅读了一个名为“lookat”的属性,它可以使用 Find 函数 (lookat:=xlwhole) 来做这种事情,你知道是否可以在我的 Match 函数中插入类似的东西吗?
谢谢 !