목차
VBA를 사용하여 하위 문자열을 찾는 가장 쉬운 방법을 찾고 있다면 잘 찾아오셨습니다. 이 기사를 살펴본 후에는 하위 문자열의 위치를 찾거나 이 하위 문자열을 사용하여 데이터를 추출하거나 하위 문자열의 형식을 쉽게 변경할 수 있습니다. 기사를 시작하겠습니다.
통합 문서 다운로드
샘플 콘텐츠
VBA를 사용하여 하위 문자열을 찾는 9가지 방법
다음이 있습니다. VBA를 사용하여 문자열에서 하위 문자열을 찾는 방법을 보여줄 데이터 테이블입니다. 또한 임의의 문자열에서 하위 문자열을 찾는 방법을 보여주려고 노력할 것입니다.
Microsoft Excel 365 버전을 사용하여 이 작업을 수행했으며 편의에 따라 다른 버전을 사용할 수 있습니다.
방법-1: VBA를 이용하여 문자열에서 하위 문자열 찾기
VBA를 이용하여 문자열에서 원하는 하위 문자열을 찾으려면 VBA 코드의 InStr 함수 .
단계-01 :
< 개발자 탭>>으로 이동 Visual Basic 옵션
그러면 Visual Basic Editor 가 열립니다.
<11로 이동>Insert Tab>> 모듈 옵션
이후 모듈 이 생성됩니다.
단계-02 :
➤다음 코드를 작성합니다.
1666
여기에 InStr(1, “ 나는 그러므로 나는 생각한다”, “생각”) 는 문자열의 하위 문자열 위치를 반환합니다. 1 는시작 위치, " 나는 생각한다 고로 나는" 는 원하는 하위 문자열을 찾을 문자열이고 "생각" 은 찾으려는 하위 문자열입니다. 기본적으로 대소문자를 구분하므로 검색하려는 하위 문자열의 대소문자에 주의하십시오.
< F5
을 누르십시오. 결과 :
그 후 “think” 하위 문자열의 위치를 포함하는 다음과 같은 메시지 상자 를 얻게 됩니다.
방법-2: 문자열에서 대소문자를 구분하지 않는 하위 문자열 찾기
VBA를 사용하여 대소문자에 관계없이 문자열에서 원하는 하위 문자열을 찾으려면 다음을 따르십시오. 방법.
단계-01 :
< 방법-1
7495<의 단계-01 을 따르십시오. 0>여기서 vbTextCompare 는 대소문자를 구분하지 않는 하위 문자열을 찾는 데 사용됩니다.
< F5
을 누르십시오. Result :
그러면 "think" 하위 문자열의 위치를 포함하는 다음과 같은 메시지 상자 가 표시됩니다.
다음 코드를 사용하여 동일한 작업을 수행할 수 있습니다.
1240
여기에서 옵션 비교 텍스트 는 대소문자를 구분하지 않는 하위 문자열을 찾습니다.
< F5
결과 :
누르기 “think” 하위 문자열의 위치를 포함하는 다음 메시지 상자 를 얻습니다.
방법-3: InstrRev 함수 사용 VBA
에서 여기에서는 a의 끝에서 하위 문자열을 찾는 방법을 보여 드리겠습니다.string.
단계-01 :
< 방법-1
9959의 단계-01을 따르십시오
InStrRev 는 왼쪽이 아닌 오른쪽에서 하위 문자열을 찾습니다.
< F5
를 누릅니다.결과 :
그러면 두 번째 “I” 하위 문자열의 위치를 포함하는 다음과 같은 메시지 상자 를 얻을 수 있습니다. right side.
방법-4: 데이터 범위에서 문자열의 부분 문자열 위치 찾기
특수문자 "@" 이메일 ID 에 입력한 후 이 방법을 따릅니다. 이를 위해 여기에 위치 열 을 추가했습니다.
Step-01 :
<따라 Step-01 of Method-1
8640
FindSubstring (다른 이름을 사용할 수 있음)
값 는 문자열을 포함하는 셀 참조이며 범위 로 선언됩니다.
단계 -02 :
➤ 출력 선택 셀 E5
➤ 다음 함수 입력( VBA 에서 생성)
=FindSubstring(D5)
D5 는 문자열을 포함하는 셀입니다.
< 을 누르십시오. ENTER
< 채우기 핸들 도구
결과 :
<를 아래로 드래그합니다. 0>이후 이메일 ID에서 특수 문자 “ @”의 위치를 얻게 됩니다.
유사 읽기:
- 찾는 방법Excel에서 VBA를 사용하여 셀의 문자열(2가지 방법)
- Excel에서 VBA를 사용하여 FindNext(2가지 예)
- 다음을 사용하여 문자열을 찾는 방법 Excel의 VBA(예제 8개)
- VBA Excel에서 마지막 행 찾기(5가지 방법)
방법-5: 특정 하위 문자열 확인 데이터 범위의 문자열
결과 열에 따라 학생의 이름에 통과 또는 대응 불합격 을 쓰고 싶다고 가정합니다. 여기서 합격 또는 불합격 이 괄호 안에 기록되었습니다. 결과 열 에서 이 하위 문자열을 찾아 합격 또는 실패 열 에 기록하려면 다음 방법을 따르십시오.
Step-01 :
< Method-1
7862
의 Step-01 을 따르십시오. 11>C5:C10 결과 열
InStr(cell.value, “Pass”) > 0 는 숫자가 0보다 큰 조건입니다(셀에 "통과" 가 포함된 경우) 다음 줄이 계속되고 인접한 셀에 통과<12로 출력이 제공됩니다>.
조건이 거짓이 되면 셀에 "통과" 가 포함되지 않음을 의미하며 Else 아래의 줄이 실행되고 인접 셀을 실패 로 지정합니다.
이 루프는 각 셀에 대해 계속됩니다.
< F5 <를 누르십시오. 1>
Result :
그러면 합격 또는 불합격에서 다음 출력을 얻을 수 있습니다. column.
방법-6: 문자열에서 특정 부분 문자열 확인 및 데이터 추출
이름이 지정된 학생을 찾는 방법을 보여 드리겠습니다. Michael 을 Student Name 열 에 입력하고 이 방법에서 VBA 를 사용하여 해당 데이터를 추출합니다.
Step-01 :
< Method-1
6058
의 Step-01 을 따르십시오. 11>B100 를 활성 시트 범위 로 사용하되 용도에 따라 임의의 범위를 사용할 수 있습니다.
InStr(1, Range("B" & i), "Michael") > 0
는 셀이 column B contains Michael
Range("E" & icount & ":G" & icount)
는 출력 데이터를 원하는 범위이며 Range("B" & i & ":D" & i).value
은 값을 제공합니다. 열 B 에서 D 로.
< F5
<11 누르기>Result :
그 후 Michael .
<38이라는 이름을 가진 학생에 대해 다음과 같은 추출된 데이터를 얻게 됩니다>
방법-7: 단어에 대한 하위 문자열 검색
하위 문자열을 단어로 찾으려면 fol 이 방법을 사용하십시오.
단계-01 :
< 방법-1
의 단계-01 을 따르십시오.2122
을 포함하는 문자열이 인지 확인하고 위치를 지정합니다.
F5 를 누르십시오.
Result :
다음에 위치:6 (위치 에서 찾은 단어를 보여주는 다음 메시지 상자가 표시됩니다>is ).
테스트할 수 있습니다.문자열에 없는 단어에 대해 이 코드를 출력하십시오.
<다음 코드를 입력하십시오.
3138
< F5 <를 누르십시오. 1>
결과 :
다음에 단어를 찾을 수 없습니다 라는 메시지 상자가 표시됩니다.
방법-8: Instr과 LEFT 함수 이용
여기서 을 이용하여 문자열에서 부분 문자열의 위치를 찾고 이 부분 문자열 앞의 텍스트를 추출하는 방법을 설명하겠습니다. VBA 및 LEFT 기능 .
단계-01 :
< 단계-01 Method-1
8008
j = InStr(txt, "is")
는 하위 문자열 의 위치가 이고 Left(txt, j - 1)
는 <11 이전의 하위 문자열을 추출합니다>is .
< F5
결과 :
나중에 Here ( is 앞의 하위 문자열)를 표시하는 다음과 같은 메시지 상자가 표시됩니다.
방법-9: 볼드체 문자열의 특정 하위 문자열
다음 방법에 따라 결과 열 에서 대괄호 앞에 등급을 굵게 표시할 수 있습니다. d.
단계-01 :
< 방법의 단계-01 을 따르십시오- 1
1645
txt = InStr(1, Cell, "(")
는 첫 번째 대괄호의 위치를 반환하고 Cell.Characters(1, txt - 1).Font.Bold
는 첫 번째 대괄호 Bold 앞에 하위 문자열을 만듭니다.
단계-02 :
< 결과 열 선택
<이동 개발자 탭>> 매크로 옵션
그런 다음 매크로 마법사가 나타납니다.
< Boldingsubstring (VBA 코드 이름)을 선택한 다음 실행 .
결과 :
이후 결과 열 의 성적은 굵게 표시됩니다.
연습 섹션
혼자 연습할 수 있도록 Practice 라는 시트에 아래와 같은 연습 섹션을 제공했습니다. 직접 해보세요.
결론
이 기사에서는 VBA 를 사용하여 부분 문자열을 찾는 가장 쉬운 방법을 다루었습니다. 엑셀에서 효과적으로 유용하게 사용하시길 바랍니다. 제안이나 질문이 있으면 언제든지 알려주세요.