Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터 찾아 추가하기

엑셀(Excel)/VBA
반응형

오늘은 지금까지 구독자 분들이 질문한 내용 중에 많이 했던 내용을 구현했습니다. 요지는 매크로를 이용해서 다른 셀이나 워크시트에 있는 내용들을 잘라서 붙이는 방법입니다. 여기에 덧붙여 동일한 코드에 데이터를 찾아 해당하는 값을 매칭하는 것도 포함 시켰습니다. 정리할 데이터가 많을 경우 아주 유용한 샘플 코드입니다.

 

 

오늘 구현할 내용은 그림에 표시한 것과 같습니다. C 데이터의 코드값을 A 데이터 코드값과 비교해 동일한 데이터가 있다면 수량을 복사하는 것이죠.

엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터를 찾아 추가하는 방법

 

초보자님들을 위해서 프로그램 작성법의 기초부터 알려 드리겠습니다. 먼저 어떻게 프로그램을 구현할지 글로 써서 단계별로 표현을 해야 합니다. 예를 들어 아래 구현할 내용을 단계별로 구분해 보겠습니다. 내용은 사람들 마다 자기만의 방식이 있기 때문에 같을 수 없습니다. 중요한 것은 무작정 코드를 짜겠다고 덤비지 말고 어떤 단계를 거쳐야 하는지 글로 써야 한다는 것입니다.

 

1. A 열의 코드 값들을 메모리에 저장한다.

2. A 열의 코드 값만큼 반복한다.

  2.1. A 열 코드 값 중에서 C 열에 있는지 찾아 수량 값을 변수에 저장한다.

  2.2. 찾은 값이 있다면 B 열에 저장한다.

  2.3. 변수를 초기화 한다.

 

그럼 각 단계별로 소스가 어떻게 구현되었는지 보겠습니다.

 

1. A 열의 코드 값들을 메모리에 저장한다. 

 

Sheets("Sheet1").Activate
Set rngList = ActiveSheet.Range("D3:D8")

 

 

2. A 열의 코드 값만큼 반복한다. 

 

For i = 3 To WorksheetFunction.CountA(Range("A:A"))
 
Next i

 

 

2.1. A 열 코드 값 중에서 C 열에 있는지 찾아 수량 값을 변수에 저장한다.

 

Set rngValue = rngList.Find(Range("A1").Offset(i, 0))
 
If Not rngValue Is Nothing Then
strPrice = rngValue.End(2) ' 바로 옆에 수량 데이터 가져옴
End If

 

 

2.2. 찾은 값이 있다면 B 열에 저장한다. 

 

Range("B1").Offset(i, 0) = strPrice

 

 

2.3. 변수를 초기화 한다.

 

strPrice = "" ' 데이터 초기화

 

 

위에서 작성한 전체를 합친 소스는 다음과 같습니다. 매크로 함수를 만들고 코드를 복사해서 넣습니다. 

Sub move_data()
 
    Dim rngList As Range
    Dim rngValue As Range
    Dim strPrice As String
    Dim i As Integer
       
    '' 데이터를 선택한다.
    Sheets("Sheet1").Activate
    Set rngList = ActiveSheet.Range("D3:D8")
 
   
    For i = 3 To WorksheetFunction.CountA(Range("A:A"))
       
        Set rngValue = rngList.Find(Range("A1").Offset(i, 0))
 
        If Not rngValue Is Nothing Then
            strPrice = rngValue.End(2) ' 바로 옆에 수량 데이터 가져옴
        End If
 
        Range("B1").Offset(i, 0) = strPrice
        strPrice = "" ' 데이터 초기화
        
    Next i
 
End Sub

 

 

매크로를 실행한 결과 원하는 대로 같은 코드값에 수량이 복사되었습니다. 이상으로 VBA 값 복사에 대해 알아 보았습니다

엑셀 VBA 다른 셀에 일치하는 코드 값에 데이터를 찾아 추가하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀(Excel) VBA - 각종 코드와 소스들을 쉽게 알아내기
엑셀 Excel 매크로 실행과 소스 편집하기
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 매크로 실행 버튼으로 코드 실행하기
셀 Excel 매크로 소스 디버깅으로 결과 확인하기
반응형
Posted by 녹두장군

댓글을 달아 주세요

  1. zheld 2019.07.22 15:25  댓글주소  수정/삭제  댓글쓰기

    혹시 같은 셀 범위가 아닌 서로 다른 엑셀파일간에서 찾아 삽입하는 방법 알려주실 수 있으신가요?!

  2. 이닝 2019.10.05 07:27  댓글주소  수정/삭제  댓글쓰기

    설명의 참조 열 행이
    혼돈되고 있는것 같습니다