본문 바로가기
Range object

[Range 개체] Find메서드

2023. 7. 4.

Find메서드는 찾기 명령을 매크로 기록하면 볼 수 있습니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Cells.Find(What:="Halle Lester", After:=ActiveCell, LookIn:=xlFormulas2, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
End Sub

문법은 다음과 같습니다.

Syntax

expression.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

What : 찾는 값입니다.

After : 검색을 시작할 셀입니다.

Lookin : 검색할 데이터 유형입니다.(XlFindLookIn 열거형 값을 사용합니다)

XlFindLookIn 열거형 값은 아래 링크를 참고하세요.

XlFindLookIn enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

LookAt : 검색 텍스트 전체 또는 일부에 대해 일치하는지 여부를 지정합니다.(XlLookAt 열거형 값을 사용합니다)

체크한 상태가 xlWhole(전체 셀 내용 일치),체크 해제가 xlPart입니다.

XlLookAt enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

SearchOrder : 검색할 순서입니다.(XlSearchOrder 열거형 값을 사용합니다)

XlSearchOrder enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

SearchDirection : 검색 방향입니다.(XlSearchDirection 열거형 값을 사용합니다)

XlSearchDirection enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

MatchCase : 대/소문자 구분 여부입니다.(기본값은 False입니다)

아래 그림과 같이 체크되어 있으면 대/소문자를 구분합니다.

다음은 도움말 예제입니다.(범위만 수정했습니다)

도움말 예제에는 firstAddress = c.Address 구문이 있지만 테스트한 결과 실제로는 사용되지 않으므로 삭제했습니다.

Sub FindValue()
    
    Dim c As Range
    Dim firstAddress As String

    With Range("A1:E10")
        Set c = .Find(2, LookIn:=xlValues) ' 범위에서 값 2를 찾습니다.
        If Not c Is Nothing Then ' 값 2를 찾았는지 확인합니다.
            Do
                c.Value = 5 ' 찾은 셀의 값을 5로 변경합니다.
                Set c = .FindNext(c) ' 다음 찾을 셀을 설정합니다.
            Loop While Not c Is Nothing ' 모든 찾을 셀을 탐색합니다.
        End If
    End With
    
End Sub