땡큐엑셀vba & 엑셀매크로

단어 시트

 

실행전

 

실행 결과

 

'https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=301558642
'
'
'
'여러 개의 단어들이 셀의 내용에 포함되어 있는지 알고 싶을 때 어떻게 해야할까요?
'예를들어, "aaa", "bbb", "ccc"가 포함되어 있는 셀을 찾고 싶을때,
'어떤 셀의 내용이 abcbccccc라면 true가 리턴되고,
'어떤 셀은 zbcd 라면 false가 결과값으로 나오게 하고 싶습니다.
'예시는 간단하게 들었지만, 찾아야 하는 단어수는 수백개이고,
'대상이 되는 문자열은 수십만개여서 VBA 함수를 작성하는 것이 필요합니다.
'문자열 처리에 관한 공부도 할겸 질문드리오니, 코드 작성 부탁드려요~^^


'
' Source by 땡큐엑셀vba & 엑셀매크로
'
Sub Main()

    'B열 clear
    Range("B:B").ClearContents
    
    
    Set rng단어 = Sheets("단어").Range("A1").CurrentRegion
    Set rng찾을범위 = Range("A1").CurrentRegion
    
    '모든 단어에 대해 검색
    For Each ea In rng단어
        
        찾을값 = ea
        
        
         '1.검색
         Set rng = rng찾을범위.Find(what:=찾을값, lookat:=xlPart)
    
        
         If Not rng Is Nothing Then '검색결과가 있다면
            strAddr = rng.Address  '첫 위치 주소
            
            '2.검색결과가 없을때 까지 루프
            Do

                If rng.Offset(0, 1) = "" Then
                    rng.Offset(0, 1) = 찾을값
                Else
                    rng.Offset(0, 1) = 찾을값 & "," & rng.Offset(0, 1) '검색 단어를 주~~욱 나열
                End If
                
                Set rng = rng찾을범위.FindNext(rng) '다음값으로
                
            Loop While Not rng Is Nothing And rng.Address <> strAddr
         End If
            
    
    Next
    
    
    MsgBox "완료되었습니다", vbInformation, "땡큐엑셀vba & 엑셀매크로"
    

End Sub

여러 개의 단어들이 셀의 내용에 포함되어 있는지 알고 싶을 때 어떻게 해야할까요-find_findnext-땡큐엑셀vba.xlsm
0.11MB