2016-07-04 34 views
1

この場合、私は固執します。私の問題は、「似たような」テキストを見つけて、それを正しいテキストに置きたいということです。文字列と部分文字列を比較する方法

例:

私はテキストがあります。

AB123を、私は、テキストのセットを持っている: を - 私は私のテキストを作成する必要があり

lol922 - bds983 - - fgh2315 ABC123この場合、ab123はabc123になります。

私はInStr()を使って比較しようとしましたが、タイプミスが左または右にある場合にのみ機能し、ミスがミドルにある場合は機能しません。

ここにあなたの注意のためのコード

For i = 2 to LastRow 
If (InStr(Cells(i, 1).Value, Cells (3, 4).Value)) <> 0 Then 
Cells(3, 4).Value = Cells(i, 1).Value 
End If 
Next i 

おかげ

ランディ

+1

https://en.wikipedia.org/wiki/Longest_common_subsequence_problem –

答えて

0

あなたは基本的にどこのスペルチェックを実行し、カスタム辞書に「正しい」オプションのあなたの範囲を追加したいと思うでしょうが、です「数字を無視する」のチェックをはずしました。見つかったものをすべて自動的に受け入れるように設定するか、ユーザーが[OK]をクリックして確認してから、辞書に残しておいてください。

最も長い共通部分列の部分一致アルゴリズムを書くロジックがたくさんあるかもしれませんが、基本的に説明したものでスペルチェッカーを作成しています。だから、これがあなたが必要とするものの世話をしなければ、なぜ拡大しないのですか。 :-)

「単語」のリストが頻繁に変更される場合は、スペルチェックを行うたびにその単語を辞書に追加する必要があります。そうでない場合は、短いリストですが、強調表示してスペルチェックしてすべて追加することができます。

これを機能させるには、ファイル/オプションの校正に行き、番号付きの単語を無視するオプションをオフにする必要があります。

カスタムディクショナリの変更にはかなりのヒットがあるので、VBAでこれを行う必要がある場合は、コードを再ハッシュしません。あなたの好きなものを選び、それに付いて、問題にぶつかったらここに投稿してください。 (私はあなたがに実行するものに具体的な質問を持つ新しいスレッドを開始すると思います。)

Application.SpellingOptions.IgnoreMixedDigits = False'how you ensure words with numbers get 
'spell checked if you end up coding it in VBA 

幸運を!

関連する問題