3

プログラムで 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 関数に同様のものを挿入できるかどうか知っていますか?

ありがとう !

4

1 に答える 1