2016-07-04 10 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

당신은 기본적으로 다음, 사용자 정의 사전에 "올바른"옵션의 당신의 범위를 추가 맞춤법 검사 어디를 실행하는 것이 좋습니다 "숫자 무시"를 선택하지 않은 경우 사용자가 찾은 모든 것을 자동으로 수락하도록 설정하거나 확인을 위해 확인을 클릭 한 다음 사전에 남겨 두거나 삭제할 수 있습니다.

가장 긴 공통 부분 시퀀스에 대해 부분 일치 알고리즘을 작성하는 로직을 사용할 수 있지만 기본적으로 설명한 것과 함께 맞춤법 검사기를 만드는 것이므로 이미 하나가 있습니다. 그래서 이것이 당신이 필요로하는 것을 돌보지 않는다면, 왜 안되는지에 대해 이야기하십시오. :-)

"단어"목록이 자주 바뀌면 맞춤법 검사 할 때마다 사전에 추가해야합니다. 그렇지 않으면 짧은 목록입니다. 그냥 강조 표시하고 철자를 검사하여 모두 추가 할 수 있습니다.

이 기능을 사용하려면 파일/옵션 교정으로 이동하고 숫자가있는 단어를 무시하는 옵션을 선택 해제해야합니다.

사용자 지정 사전 수정에 대한 적중률이 매우 높으므로 VBA에서 코드를 다시 처리해야합니다. 좋아하는 것을 고르고 그걸로 가버린 다음 문제가 생기면 여기에 게시하십시오. (당신이 달리는 것에 관련된 질문들로 새로운 실을 시작하겠습니다.)

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

행운을 빈다!

관련 문제