목차
VBA 구현은 Excel에서 모든 작업을 실행하는 가장 효과적이고 빠르고 안전한 방법입니다. 이 기사에서는 Excel에서 VBA 를 사용하여 주어진 다른 문자열에서 특정 문자열을 찾는 방법을 보여줍니다.
실습 템플릿 다운로드
You 여기에서 무료 실습용 Excel 템플릿을 다운로드할 수 있습니다.
VBA to Find in String.xlsm
InStr Function
Microsoft Excel에는 주어진 문자열에서 특정 문자열의 위치를 찾는 InStr 함수 라는 내장 함수가 있습니다.
일반 구문:
InStr([start], string1, string2, [compare])
여기
인수 | 필수/선택 | 정의 |
---|---|---|
시작 | 옵션 | 검색 시작 위치.
|
string1 | 필수 | 검색할 문자열, 기본 문자열. |
문자열2 | 필수 | 기본 문자열에서 검색할 문자열 . |
비교 | 옵션 | InStr 기능은 기본적으로 대소문자를 구분합니다. 그러나 대소문자를 구분하지 않는 InStr 를 실행하려는 경우 여기에 인수를 전달하여 특정 비교를 수행할 수 있습니다. 이 인수는 다음과 같을 수 있습니다.값,
기본적으로 InStr 은 vbBinaryCompare 를 비교 인수로 사용합니다. |
VBA를 사용하여 주어진 문자열에서 특정 문자열 위치를 찾는 8가지 쉬운 예
다음을 사용하여 주어진 문자열에서 특정 문자열의 위치를 가져오는 간단한 예를 살펴보겠습니다. VBA .
1. 문자열에서 텍스트의 위치를 찾기 위한 VBA
아래는 찾기 위한 InStr 의 예입니다. 문자열에서 텍스트의 위치입니다.
- 키보드에서 Alt + F11 을 누르거나 개발자 -> 탭으로 이동합니다. Visual Basic Visual Basic Editor 를 엽니다.
- 팝업 코드 창에서 메뉴 표시줄에서 , 삽입 -> Module .
- 이제 코드 창에서 VBA Sub 안에 간단한 InStr 프로그램을 작성합니다. 절차 (아래 참조).
3659
이제 코드를 실행할 준비가 되었습니다.
- F5 키를 누르십시오. 키보드 또는 메뉴 표시줄에서 실행 -> Sub/UserForm 을 실행합니다. 하위 메뉴 표시줄에서 작은 재생 아이콘 을 클릭하여 매크로를 실행할 수도 있습니다.
팝업 메시지 상자에 번호가 표시됩니다.확인하려는 텍스트의 위치 를 선언합니다.
설명:
우리의 기본 문자열인 “ 행복 is a choice ”는 21자 문장(공백 포함)이며 해당 문자열에서 “ choice ” 텍스트의 위치를 찾고 싶었습니다. " choice " 텍스트는 기본 문자열의 16번째 위치에서 시작하므로 메시지 상자의 출력으로 16 라는 숫자를 얻었습니다.
2. 문자열의 특정 위치에서 텍스트를 찾는 VBA
이제 특정 숫자에서 위치를 얻으려면 어떻게 되는지 알아보겠습니다.
- 다음과 같은 방식입니다. 이전에 개발자 탭에서 Visual Basic Editor 를 열고 코드 창에 모듈 을 삽입 합니다.
- 에서 코드 창에서 위에 표시된 간단한 InStr 프로그램을 작성하고 텍스트를 계산하려는 위치에 따라 시작 인수의 값을 전달합니다.
8431
- 다음으로 코드를 실행 합니다.
팝업 메시지 상자가 확인하려는 특정 위치 에서 시작하는 텍스트의 위치 를 선언하는 번호를 제공합니다.
설명:
(1단계 토론에서) “ choice ”라는 텍스트가 16 의 위치에서 시작한다는 것을 이미 알고 있었기 때문에 두 개의 " choice ”를 기본 문자열로 지정하고 17 를 우리의 문자열로 설정합니다.첫 번째 " choice "를 건너뛰는 첫 번째 매개변수입니다. 따라서 위의 매크로를 실행 하면 두 번째 “ choice ”의 위치 번호인 27 위치 번호가 표시됩니다. 주어진 문자열에서.
3. String
에서 대소문자를 구분하지 않는 InStr 함수로 텍스트를 찾기 위한 VBA InStr 함수의 소개에서 기본적으로 InStr 함수가 대소문자를 구분합니다. 예를 들어 알아보겠습니다.
다음 VBA 코드를 참조하십시오. 여기서 " Choice ” " Happiness is a choice " 문자열에 대문자 "C" 가 있고 선택은 작은 "c" 로 작성됩니다. .
- 코드를 실행 하고 출력으로 0 을(를) 찾으십시오.
InStr 함수가 대문자 "C" 와 소문자 "c" 를 다르게 취급하기 때문입니다. 따라서 문자열에서 " Choice "라는 단어를 검색했지만 일치하는 항목이 없으므로 0 .
- InStr 함수 대소문자 구분 을 만들려면 비교 인수를 vbTextCompare 로 설정합니다(아래 참조).
6587
- 코드를 실행 합니다.
텍스트의 위치를 얻습니다. 문자열에서 텍스트가 대문자 또는 소문자 로 작성되었는지 여부
4. 문자열 오른쪽에서 텍스트를 찾는 VBA
지금까지 InStr 기능은 문자열의 왼쪽 위치만 제공했습니다. 그러나 문자열의 오른쪽에서 텍스트 위치를 찾으려면 어떻게 해야 합니까?
InStrRev 함수 는 오른쪽에서 검색합니다. InStrRev 기능은 InStr 기능과 매우 유사하게 작동하며 문자열의 오른쪽 에서 텍스트의 위치를 찾습니다.
차이점을 이해하려면 다음 예제를 참조하십시오.
- InStr 함수로 다음 코드를 실행하면
첫 번째 텍스트 " choice "의 위치( 16 )를 알려줍니다.
- 하지만 InStrRev 기능으로 동일한 코드를 실행하면
( 27 ) 마지막 텍스트 " 선택 ".
유사 읽기:
- Excel에서 VBA를 사용하여 다음 찾기(예제 2개)
- VBA를 사용하여 찾기 및 바꾸기(11가지 방법)
- 엑셀에서 VBA를 사용하여 정확히 일치하는 항목 찾기(5가지 방법)
5. 문자열에서 문자의 위치를 찾기 위한 VBA
텍스트를 찾는 것과 같은 방식으로 문자열에서 특정 문자의 위치를 찾을 수도 있습니다.
- 복사 코드를 VBA 코드 창
8409
- 에 입력하고 매크로를 실행 합니다.
주어진 문자열의 첫 번째 " e "는번호 7 위치.
6. 문자열에서 하위 문자열을 찾는 VBA
여기서는 문자열에 하위 문자열 이 포함되어 있는지 여부를 찾는 방법을 배웁니다.
이를 얻기 위해 코드에서 IF 문 을 실행합니다.
- 이전과 같은 방법으로 개발자 탭에서 Visual Basic Editor 를 열고 코드 창에 모듈 을 삽입 합니다.
- 코드 창에서 다음 코드를 복사하여 붙여넣습니다.
9008
귀하의 이제 코드를 실행할 준비가 되었습니다.
- 실행 매크로.
문자열에 하위 문자열 이 포함되어 있으면 일치 항목 발견 이 표시되고 그렇지 않으면 일치 항목이 없음을 반환합니다. 이 예에서는 기본 문자열 " Happiness is a choice "에 " choice "라는 단어가 포함되어 있는지 확인하고 싶었습니다. 아니다. 그러면 Match found 결과가 나옵니다.
7. 셀 범위에서 문자열을 찾는 VBA
문자열의 셀 범위에서 특정 텍스트를 검색하고 특정 문자열을 반환할 수 있습니다.
다음 예제를 살펴보십시오. " Dr. "를 찾고 일치하는 항목이 있으면 " Doctor "를 반환합니다.
- 아래는 위에서 설명한 결과를 얻기 위한 코드입니다.
2931
- 실행 코드와 결과는 아래와 같습니다.
- 필요에 따라 매크로를 수정할 수 있습니다. 예를 들어 원하는 경우문자열의 임의의 셀에서 " Prof. "를 찾고 " Professor "를 리턴으로 받은 다음 " Prof. " 값으로 " Dr " 대신. 매크로의 4번째 줄에서 매크로의 5번째 줄에서 " Doctor " 대신 " Professor "를 정의하고 따라서 셀 범위 번호.
8. 셀에서 문자열을 찾는 VBA
문자열 의 단일 셀에서 특정 텍스트를 검색하고 특정 문자열을 반환할 수도 있습니다.
- 다음 코드를 복사하여 코드 창에 붙여넣으십시오.
5777
“ Dr. ”가 셀 B5 에 있고 일치하는 항목을 찾으면 셀 C5 에 " Doctor "를 반환합니다.
- 필요에 따라 매크로를 수정할 수 있습니다. 예를 들어 문자열의 임의의 셀에서 " Prof. "를 찾고 " Professor "를 반환하려는 경우, " Dr " 대신 값으로 " Prof. "를 전달하면 됩니다. 매크로의 두 번째 줄에서 매크로의 세 번째 줄에서 " Doctor " 대신 " Professor "를 정의하고
결론
이 기사에서는 VBA 매크로를 사용하여 Excel에서 문자열의 특정 텍스트를 찾는 방법을 설명했습니다. 이 기사가 귀하에게 많은 도움이 되었기를 바랍니다. 관련하여 궁금하신 사항을 부담없이주제.