목차
Visual Basic Application(VBA) 에서 사용하는 가장 중요하고 널리 사용되는 기능 중 하나는 찾기 기능입니다. 이번 글에서는 엑셀의 FIND 기능 을 제대로 활용하는 방법을 예시와 그림으로 보여드리겠습니다.
실습 워크북 다운로드
Excel.xlsm의 VBA에서 함수 찾기
6 VBA에서 FIND 함수를 사용하는 빠른 예
다음은 Martin Bookstore라는 서점에서 책 이름, 저자 및 가격 이 포함된 데이터 세트를 얻었습니다.
Today 우리의 목표는 이 데이터 세트에서 VBA 의 찾기 기능 의 다양한 사용 유형을 확인하는 것입니다.
1. 매개변수 없이 VBA에서 찾기 기능 사용
매개변수 없이 VBA 의 찾기 기능 을 사용할 수 있습니다.
그런 다음 셀 범위 내에서 특정 값을 검색하고 찾은 첫 번째 일치 항목을 반환합니다.
“P. B. Shelly” 열의 저자 ( C4:C13 ).
찾기 기능 이 있는 행은 다음과 같습니다.
Set cell = Range("C4:C17").Find("P. B. Shelly")
완전한 VBA 코드 는 다음과 같습니다.
⧭ VBA 코드:
5527
⧭ 출력:
매크로 는 찾기 라고 합니다. 매크로를 실행하면 이름이 P인 첫 번째 셀 주소인 $C$6 가 반환됩니다. B. Shelly .
더 읽기: VBA를 사용하여 범위 내에서 찾기Excel: 완전 일치 및 부분 일치 포함
2. After 매개변수를 사용하여 VBA에서 찾기 기능 적용(특정 셀에서 검색 시작)
찾기 기능 과 함께 After 매개변수를 사용할 수 있습니다. VBA 에서. 그런 다음 범위 내의 셀 아래에서 값 검색을 시작합니다.
예를 들어 “P. B. Shelly” 셀 아래에서 C6 .
코드 줄은 다음과 같습니다.
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))
완전한 VBA 코드 는 다음과 같습니다.
⧭ VBA 코드:
4471
⧭ 출력:
셀 C6 아래에서 검색을 시작하기 때문에 $C$13 를 반환합니다. 셀 C7 에서 가져온 것입니다. 따라서 P를 얻습니다. B. 셀 C13 의 Shelly 먼저.
자세히 알아보기: 에서 문자열을 찾는 방법 엑셀에서 VBA를 이용한 셀
3. After 매개변수를 감싸서 VBA에서 찾기 기능 실행(순환 방식으로 값을 검색하려면)
찾기 기능이 있는 After 매개변수 순환 방식으로 값을 검색합니다.
즉, 범위 내의 셀 아래에서 검색을 시작하여 범위에서 검색을 마치고 다시 범위의 상단에서 시작합니다.
예를 들어, After 매개변수를 사용하여 C8 셀 아래에서 “John Keats” 라는 이름 검색을 시작하겠습니다.
코드는 다음과 같습니다.
Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))
완전한 VBA 코드 는 다음과 같습니다:
⧭ VBA 코드:
8212
⧭ 출력:
셀 C8 아래에서 검색을 시작하기 때문에 $C$7 를 반환합니다. cell C9 .
셀 C13 까지 아무 것도 찾지 못하므로 셀 C4 에서 다시 시작하여 셀에서 하나를 찾습니다. C7 .
비슷한 읽기:
- VBA로 문자열을 찾는 방법 in Excel (예제 8개)
- Excel에서 VBA를 사용하여 정확히 일치하는 항목 찾기(5가지 방법)
- VBA를 사용하여 찾고 바꾸는 방법(11 방법)
4. LookAt 매개변수와 함께 VBA의 찾기 기능 활용(정확한 일치 또는 부분 일치의 경우)
VBA 의 찾기 기능 을 LookAt 매개변수.
정확 일치에는 LookAt = xlWhole 을 사용하고 부분 일치에는 LookAt=xlPart 를 사용하십시오. 일치.
예를 들어, 책 이름 열( B4:B13 ).
코드 라인에서 xlWhole 을 사용하는 경우:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)
정확한 일치 항목을 찾지 못하기 때문에 출력에 오류가 표시됩니다.
그러나 다음을 사용하는 경우:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)
그러면 셀 에 “Ode” 라는 이름의 책이 있으므로 $B$9 를 반환합니다. B7 , Ode to the Nightingale.
따라서 부분 일치에 대한 전체 코드입니다:
⧭ VBA 코드:
6505
5. SearchDirection 매개변수로 VBA에서 찾기 기능 작동(검색 방향 지정)
VBA 에서 찾기 기능 을 다음과 함께 사용할 수도 있습니다. SearchDirection 매개변수.
SearchDirection = xlNext 를 사용하여 위에서 아래 로 검색합니다.
및 SearchDirection = xlPrevious 는 Bottom to Top 을 검색합니다.
예를 들어 Author 열에서 저자 Elif Shafak 을 찾아보겠습니다. ( C4:C13 ).
코드 라인에서 xlNext 를 사용하는 경우:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)
그러면 $C$5 .
를 반환하지만 다음을 사용하는 경우:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)
그런 다음 $C$11 을 반환합니다.
따라서 아래에서 위로 검색하기 위한 전체 코드 는
⧭ VBA 코드:
2664
6입니다. MatchCase 매개변수가 있는 VBA의 찾기 기능(대소문자 구분 또는 구분하지 않는 일치의 경우)
마지막으로 찾기 기능 을 MatchCase 매개변수와 함께 사용할 수 있습니다.
대소문자를 구분하는 일치 , 의 경우 MatchCase = True 를 사용하고 의 경우 MatchCase=False 를 사용합니다. 대소문자를 구분하지 않는 일치.
예를 들어 책 이름 열( B4:B13 ).
코드 줄에서 True를 사용하면:
Set cell = Range("B4:B13").Find("mother", MatchCase:=True)
출력에 오류가 표시됩니다. t 아무것도 찾지match.
그러나 다음을 사용하는 경우:
Set cell = Range("B4:B13").Find("mother", MatchCase:=False)
다음을 반환합니다 $ B$9 셀 B8 에 "Mother" 라는 이름의 책이 있기 때문입니다.
대소문자 구분 일치:
⧭ VBA 코드:
6908
결론
이러한 방법을 사용하면 Visual Basic Application에서 찾기 기능을 사용할 수 있습니다. 질문있으세요? 언제든지 문의해 주세요.