Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣기

엑셀(Excel)/VBA
반응형

하나의 시트에 모든 데이터를 관리하고 있다가 각 영역별로 데이터를 분리해서 시트에 붙여 넣고 싶다면 어떻게 해야 할까요? 매번 데이터가 바뀔 때마다 영역을 잘라서 붙여 넣는다면 시간과 인력 낭비일 뿐입니다. VBA 를 알고 있다면 매크로를 이용해서 클릭 한번으로 일괄 처리 할 수 있습니다. 

 

 

 

구현할 샘플의 내용은 다음과 같습니다. “종합시트에 있는 내용을 지역구 별로 찢어서 만들어진 시트에 넣을 것입니다. 그러려면 매크로 함수를 만들어야겠죠.

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 

상단 메뉴에서 개발 도구 탭 > 매크로 리본 메뉴를 클릭합니다. 그럼 매크로 작성을 위한 팝업창이 뜹니다. 이곳에 [매크로 이름]을 넣고 만들기 버튼을 클릭합니다. 매크로 이름은 곧 함수명이 됩니다.

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 워크시트(Worksheet) 개체를 이용해서 시트 관리하기
엑셀 VBA 시트에서 데이터 영역 구하기
엑셀 VBA 시트 테두리 그리는 방법
셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 

 

 

 

매크로 생성 팝업창에서 만들기 버튼을 클릭하면 Visual Basic Editor 가 뜰 겁니다. 그곳에 있는 함수명에 아래 소스를 복사해서 넣습니다. 첫 번째 종합시트에 있는 데이터를 복사해서 붙여 넣는 방법은 여러가지가 있습니다. 그러나 이 방법들 모두 동일한 패턴을 가지고 있습니다. 소스에서 Copy 함수를 기준으로 앞쪽은 원본 영역을 말하고 뒤쪽은 붙여 넣을 영역에 해당합니다. 그러니까 Copy 함수를 이용해서 앞에 있는 내용을 뒤에 있는 영역에 붙여 넣는 것이죠.

Sub 지역별분리() 
    ' 첫번째 방법    
    ' Worksheets("종합").Range("A2:G2").Copy Worksheets("강남구").Range("A1")    
    ActiveSheet.Range("A2:G2").Copy Worksheets("강남구").Range("A1")    
    ActiveSheet.Range("A3:G3").Copy Worksheets("서초구").Range("A1")    
    ActiveSheet.Range("A4:G4").Copy Worksheets("송파구").Range("A1")    
    ActiveSheet.Range("A5:G5").Copy Worksheets("종로구").Range("A1")   
    
    ' 두번째 방법    
    ' 종합 시트에 2행 1열(Cells(2,1))에서 1행 7열을 복사해서 붙여 넣는다.    
    'Sheets("종합").Cells(2, 1).Resize(1, 7).Copy Sheets("강남구").Cells(1, 1).Resize(1, 7) 
End Sub

  

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 

소스가 다 만들어 졌다면 실행을 해 봐야겠죠. 다시 [개발 도구] > [매크로] 리본 메뉴를 클릭합니다. 그리고 해당 함수를 선택한 후 실행 버튼을 눌러 주면 지금까지 작성한 매크로가 실행됩니다.

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 

아래 그림처럼 매크로 실행 결과가 각각의 시트에 들어간 것을 확인할 수 있습니다. 이상으로 데이터를 분리해서 다른 시트에 복사하는 방법에 대해 알아 보았습니다.

엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 워크시트(Worksheet) 개체를 이용해서 시트 관리하기
엑셀 VBA 시트에서 데이터 영역 구하기
엑셀 VBA 시트 테두리 그리는 방법
셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법
반응형
Posted by 녹두장군1
,