본문 바로가기

엑셀/VBA

엑셀 VBA 값 찾기 메서드 Find 알아보기

반응형

이전 글에서 셀 병합 및 병합 해제 메서드인 Merge와 UnMerge에 대해 알아보았습니다. 이번 글에서는 엑셀 메뉴에서 찾기 기능과 동일한 메서드인 Find에 대해서 알아보겠습니다.

 

VBA 메서드 셀 병합 Merge 및 병합 해제 UnMerge에 대해 알아보기

 

VBA 메서드 셀 병합 Merge 및 병합 해제 UnMerge에 대해 알아보기

이전 글에서 Insert 메서드에 대해 알아보았습니다. 이번에는 셀을 병합할 때 사용하는 Merge 메서드에 대해 알아보겠습니다. VBA 셀 삽입 메서드 Insert에 대해 알아보기 VBA 셀 삽입 메서드 Insert에 대

mr-johndoe.tistory.com

 

 

 

 

 

1. Find 메서드

  엑셀 메뉴에 -편집-찾기 및 선택-찾기 메뉴가 있습니다. 이 메뉴는 데이터가 입력되어 있는 시트에서 빈 셀을 찾을 때 사용하였습니다. (아래 링크의 이전 글 참조)

 

엑셀에서 빈 셀을 쉽게 채우는 방법 알아보기

 

엑셀에서 빈 셀을 쉽게 채우는 방법 알아보기

1. 빈셀 채우기  엑셀은 계산을 위해 사용하는 경우 많이 사용합니다. 많은 수치들을 처리하는 과정을 보다 쉽게 하기 위해 엑셀을 사용합니다. 그런데 데이터들을 불러와 사용하시거나 입력하

mr-johndoe.tistory.com

 

찾기-메뉴창
[그림 1] 찾기 메뉴 창

엑셀 메뉴 찾기를 클릭하면 [그림 1]과 같은 창이 출력됩니다. 

 

Find 메서드는 이 찾기 메뉴와 동일한 기능을 가집니다. 이 메서드의 매개변수는 [그림 1]의 찾기 메뉴 창 내용과 비교하면서 보시면 거의 동일하다는 것을 아실 수 있습니다. 사용하는 방법은 다음과 같습니다.

 

   Range.Find (찾을 내용, 검색 시작 위치, 찾는 위치, 전체 셀 내용 일치, 검색, 검색 방향, 대/소문자 구분, 전자/반자 구분, 서식)

 

찾는 위치에 사용되는 내장 상수는 다음과 같습니다.

 

  xlFormula : 수식

  xlValues : 값

  xlComments : 메모

 

전체 셀 내용 일치에 사용되는 내장 상수는 다음과 같습니다.

 

  xlWhole : 체크

  xlPart : 체크 해제

 

검색에 사용되는 내장 상수는 다음과 같습니다.

 

  xlByRows : 행

  xlByColumns :

 

검색 방향에 사용되는 내장 상수는 다음과 같습니다.

 

  xlNext : 다음

  xlPrevious : 이전

 

대/소문자 구분전자/반자 구분에 사용되는 내장 상수는 다음과 같습니다.

 

  True : 체크

  False : 체크 해제

 

 

 

 

2. 예제로 확인

엑셀 시트에 [그림 2]와 같은 판매장부가 있으며 [그림 3]과 같이 단가표가 따로 작성되어 있는 경우에 판매장부에 입력한 물품명에 맞는 단가를 단가표에서 자동으로 찾아와 판매금액이 계산되도록 하는 예제입니다.

 

판매장부
[그림 2] 판매장부

 

단가표
[그림 3] 단가표

[그림 2]의 판매장부 시트에 ActiveX 버튼 하나를 생성하고 Caption에 '계산'이라고 입력합니다.

 

 

 

 

생성한 버튼을 마우스 왼쪽 버튼으로 더블클릭하여 코드창을 열고 다음과 같이 입력합니다.

 

   Private Sub CommandButton1_Click()

     Dim 단가표 As Range

     Dim 장부 As Range

     Dim 단가 As Range

     Dim i As Integer

     Dim j As Integer

 

     Set 단가표 = Range("I2").CurrentRegion

 

     i = Range("B2").End(xlDown).Row

 

     For j = 3 To i

        Set 단가 = 단가표.Find(what:=Range("B" & j).Value)

        Range("C" & j).Value = 단가.Offset(, 1).Value

     Next

   End Sub

 

Set 단가표 = Range("I2").CurrentRegion

: I2 셀에 연속된 데이터가 입력된 범위를 단가표 변수에 입력합니다.

 

i = Range("B2").End(xlDown).Row

: B열에서 데이터가 입력되어 있는 마지막 행의 값을 변수 i에 입력합니다.

 

Set 단가 = 단가표.Find(what:=Range("B" & j).Value)

: 단가표에 입력된 범위에서 B열 j행의 값과 동일한 값이 있는 셀을 단가에 입력합니다.

 

Range("C" & j).Value = 단가.Offset(, 1).Value

: 단가에 입력된 셀에서 우측으로 1열 이동한 셀의 값을 C열 j행의 셀에 입력합니다.

 

위의 코드를 입력하고 계산 버튼을 클릭하시면 판매장부의 단가에 해당 금액이 입력되는 것을 보실 수 있습니다.

 

반응형