특정 단어 찾기 최종
- 만조
- 23
- 0
Function findx(searchWords As String, searchCell As Range) As String
Dim result As String
Dim startIndex As Integer
Dim endIndex As Integer
Dim surroundingText As String
Dim wordArray() As String
Dim i As Integer
' 결과 및 초기 설정
result = ""
wordArray = Split(searchWords, ",") ' 쉼표로 구분된 단어들을 배열로 분리
For i = LBound(wordArray) To UBound(wordArray)
' 각 단어에 대해 검색 수행
startIndex = InStr(1, searchCell.Value, Trim(wordArray(i)), vbTextCompare)
' 찾을 단어가 존재하는 경우
If startIndex > 0 Then
' 찾은 단어의 앞뒤 10글자의 시작 및 끝 인덱스 계산
endIndex = startIndex + Len(wordArray(i)) - 1
startIndex = Application.WorksheetFunction.Max(1, startIndex - 10)
endIndex = Application.WorksheetFunction.Min(endIndex + 10, Len(searchCell.Value))
' 앞뒤 10글자 추출
surroundingText = Mid(searchCell.Value, startIndex, endIndex - startIndex + 1)
' 결과 변수에 값을 추가
result = result & surroundingText & ", "
End If
Next i
' 결과가 비어있으면 "없음"으로 설정
If result = "" Then
result = "없음"
Else
' 마지막에 추가된 쉼표와 공백 제거
result = Left(result, Len(result) - 2)
End If
' 결과 반환
findx = result
End Function