プログラムで 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" の 3 つの特定のケースのみの一致を明らかにします。
Find 関数 (lookat:=xlwhole) でこの種のことを実行できる "lookat" という属性について読みましたが、Match 関数に同様のものを挿入できるかどうか知っていますか?
ありがとう !