2016-08-19 27 views
-2

VBA文字列内の特定の単語を検索するためのコードがあります。現在、私はINSTRを使用しています:VBA文字列内の特定の単語を検索する

tag1 = InStr(1, dish, keyword, vbTextCompare) 

課題は、検索単語の文字列を比較していないということですが。 など。私は文字列のキーワードとして「」を探していた場合 - 茄子ピザ、それは真の値を返します。 egg "が文字列内に存在するかどうか検索するのが理想です。私は使用できるより良い機能はありますか?

+1

'.Find'?マクロを記録するか、stackoverflowを検索します。 –

+2

あなたはGoogleを知っていますか!もしあなたが "非常に優れた単語を文字列で見つけたら" 3番目の結果はあなたの解決策を解決する可能性がありますhttp://stackoverflow.com/questions/28100969/excel-exact-word-matching – Fabrizio

答えて

0

正規表現を使用してVBAでこれを実現することもできます。

完全に一致するように強制する^と$演算子を特に検索します。

あなたのケースでは、^ Egg $のようなパターンがあなたが望むことをする必要があります。

はこの上でいくつかの良いヘルプはこちらをご覧ください: How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

+0

上記の答えは正しい。私はそれの下でコメントすることはできません。それは1を返します。つまり、OPが見つけようとしていないEggのインスタンスを見つけます。 –

0

InStrが移動するための方法です。文字列がテキストに何回存在するかを知るために、この1行のコードを使用することができます。ここで私はあなたの例を使用します。

Debug.Print UBound(Split("Eggplant Pizza", "Egg")) 

コードケースは小文字を区別しないようにするには、あなたのコードモジュールの最上部にOption Compare Textを置くことができます。

関連する問題