하나의 시트에 모든 데이터를 관리하고 있다가 각 영역별로 데이터를 분리해서 시트에 붙여 넣고 싶다면 어떻게 해야 할까요? 매번 데이터가 바뀔 때마다 영역을 잘라서 붙여 넣는다면 시간과 인력 낭비일 뿐입니다. 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 워크시트(Worksheet) 개체를 이용해서 시트 관리하기 ▶ 엑셀 VBA 시트에서 데이터 셀 영역 구하기 ▶ 엑셀 VBA 시트 테두리 선 그리는 방법 ▶ 엑셀 VBA 데이터 분리해서 다른 시트에 붙여 넣는 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 값 숫자 여부 판단하는 IsNumberic 함수 사용하기 (2) | 2024.06.29 |
---|---|
엑셀 VBA 리스트 박스(ListBox) 사용하기 (0) | 2024.06.29 |
엑셀 VBA For Each 반복문 이용해서 셀 영역 병합 및 합계 구하기 (0) | 2024.06.15 |
엑셀 VBA 영역(Range)을 배열(Array) 로 변경하기 (5) | 2024.06.15 |
엑셀 VBA 웹브라우저(인터넷 익스플로러) 띄우는 방법 (0) | 2024.06.12 |
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 (0) | 2024.06.05 |
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법 (0) | 2024.06.02 |
엑셀 VBA 중복 데이터 재귀 호출과 반복문 사용해서 삭제하기 (0) | 2024.06.02 |