Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 셀 데이터 검색해서 찾기

엑셀(Excel)/VBA

VBA 를 이용해서 엑셀 데이터 중 원하는 값을 찾아 몇 번 줄에 있는지 알려 주는 코드를 만들어 보겠습니다. 시트에서 실행은 양식 컨트롤의 버튼을 이용할 것입니다. 소스는 버튼을 클릭하면 지정한 매크로를 실행해서 찾는 내용이 몇 번 행에 있는지 팝업창으로 알려줄 것입니다.  

 

 

 

프로그램에 쓰이는 컨트롤 목록은 [개발 도구] 탭에 있습니다. 컨트롤 그룹의 삽입 리본 메뉴를 선택하시면 양식 컨트롤에 [버튼] 을 볼 수 있습니다.

엑셀 VBA 셀에 있는 데이터 검색해서 찾는 방법

 

버튼을 클릭해서 엑셀 시트에 추가하면 [매크로 지정] 팝업창이 뜨게 됩니다. 매크로 지정 팝업창에서 매크로 이름을 넣고 [새로 만들기]를 클릭합니다.

엑셀 VBA 셀에 있는 데이터 검색해서 찾는 방법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터 찾아 추가하기
엑셀 VBA 마지막 행과 열의 수 찾기
엑셀 VBA 시트에서 데이터 셀 영역 구하기
엑셀 VBA – 매크로 이용해서 특정 조건의 데이터를 삭제하고 싶을 때
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음

 

 

 

매크로 지정 팝업창에서 [새로 만들기] 버튼을 클릭하면 VBA 에디터에 매크로 이름에 해당하는 함수가 자동으로 생깁니다. 먼저 함수 내에서 데이터가 들어가 있는 셀이 몇 개 인지 체크하는 소스를 만듭니다. 셀을 내용을 하나씩 체크하기 위해 Do ... Loop Until 반복문을 사용하였고 마지막에 값이 없을 때 까지 반복한 후 몇 개가 있는지 메시지 박스로 알려줍니다.

Sub SearchName()
   
    Dim row As Integer
    Dim name As String
   
    row = 0
   
    Do
    DoEvents
        row = row + 1
        name = ActiveSheet.UsedRange.Range("A" & row)
    Loop Until name = ""
       
    MsgBox row - 1
End Sub

 

 

아래 그림처럼 [찾기] 버튼을 클릭해서 SearchName() 함수를 실행하면 A 열에 있는 이름이 몇 개 인지 알려줍니다.

엑셀 VBA 셀에 있는 데이터 검색해서 찾는 방법

 

다음은 위에서 만든 소스에다 [이름 입력]칸에 찾고 싶은 이름을 입력하고 찾기를 누르면 몇 번째 셀에 있는 찾을 수 있도록 소스를 추가해 보겠습니다. Do Loop Until 반복문을 돌면서 입력한 이름값인 “C2” 와 각 셀의 값을 비교해서 해당하는 값이 맞다면 몇 번째인지 searchCount 변수에 저장합니다. 이 값이 찾고자 하는 이름이 있는 행 값입니다. InStr() 함수는 두 번째 인수로 들어간 findName 값이 있으면 1 이상을 리턴하게 됩니다.

Sub SearchName()
   
    Dim row, searchCount As Integer
    Dim name As String
   
    row = 0
    searchCount = 0
    findName = ActiveSheet.UsedRange.Range("C2")
   
    If findName = "" Then
        MsgBox "찾을 이름을 입력해 주세요!!"        Exit Sub
    End If
   
    Do
    DoEvents
   
        row = row + 1
        name = ActiveSheet.UsedRange.Range("A" & row)
        If InStr(name, findName) > 0 Then
            searchCount = row
        End If
       
    Loop Until name = ""
       
    MsgBox findName & " 는 " & searchCount & " 번째 셀에 있습니다."
    
End Sub

 

 

아래 그림처럼 찾을 이름을 입력하고 [찾기] 버튼을 누르시면 몇 번째 행에 이름이 있는지 알려 주게 됩니다.

엑셀 VBA 셀에 있는 데이터 검색해서 찾는 방법

 

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※
엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터 찾아 추가하기
엑셀 VBA 마지막 행과 열의 수 찾기
엑셀 VBA 시트에서 데이터 셀 영역 구하기
엑셀 VBA – 매크로 이용해서 특정 조건의 데이터를 삭제하고 싶을 때
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
Posted by 녹두장군1
,