안녕하세요.
월별로 집계하는 피벗 테이블을 만들어 합계 값이 표시되는 셀을 더블 클릭하면 새 시트에 필터된 값이 복사되도록 매크로를 만들었습니다.
2022.11.04 - 엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로
매크로를 여러 번 실행하지 않고 한 번에 실행 되도록 수정하는 방법을 소개합니다.
실습 파일 다운로드
실습 파일에 피벗 테이블이 만들어져 있습니다.
월별 데이터를 별도 시트에 나타나도록 상대 참조로 기록하는 매크로를 만듭니다.
[M2] 셀에 커서를 두고 [개발 도구]-[코드]-[상대 참조로 기록]을 선택합니다.
그리고 [매크로 기록]을 선택합니다.
매크로 이름은 월별나누기로 하고, 이번에는 한 번만 실행하면 되기 때문에 바로 가기 키를 지정하지는 않습니다.
[확인]을 눌러 매크로를 기록합니다.
현재 선택된 셀을 더블클릭하고 새로 생긴 시트로 전환된 상태에서 시트 탭의 2022년 시트를 클릭해서 돌아온 뒤 바로 아래 셀인 [M3] 셀을 선택하고 [기록 중지]를 선택합니다.
[개발 도구]-[코드]-[매크로]를 선택하고, 매크로 이름 중 월별나누기를 선택하고 [편집]을 누릅니다.
VBE에 만들어진 매크로 코드가 보입니다.
실행에는 필요없는 주석 부분은 지웁니다.
Sub 월별나누기()
ActiveCell.Select
Selection.ShowDetail = True
Sheets("2022년").Select
ActiveCell.Offset(1, 0).Range("표1[[#Headers],[거래일자]]").Select
End Sub
ActiveCell.Select와 Selection.ShowDetail = True는 한 줄로 합칠 수 있습니다.
Sub 월별나누기()
ActiveCell.ShowDetail = True
Sheets("2022년").Select
ActiveCell.Offset(1, 0).Range("표1[[#Headers],[거래일자]]").Select
End Sub
[M2] 셀부터 [M13] 셀까지 더블클릭하면 되므로 굳이 상대참조로 나타낼 필요없이 반복문 For로 나타냅니다.
Sub 월별나누기()
For i = 2 To 13
ActiveCell.ShowDetail = True
Sheets("2022년").Select
ActiveCell.Offset(1, 0).Range("표1[[#Headers],[거래일자]]").Select
Next i
End Sub
ActiveCell을 변수 i를 쓸 수 있도록 Range 개체로 바꿉니다.
필요없는 마지막 줄도 삭제합니다.
Sub 월별나누기()
For i = 2 To 13
Range("M" & i).ShowDetail = True
Sheets("2022년").Select
Next i
End Sub
완성된 코드입니다.
처음 매크로를 기록할 때 만들어진 Sheet1은 지우고 매크로를 실행해서 제대로 동작하는지 확인합니다.
12개 시트가 새로 만들어졌습니다.
더블 클릭해야 할 셀이 더 많더라도 For 반복문의 값만 수정하면 됩니다.
필요하신 분께 도움이 되길 바랍니다.
2023.07.22 - 월별로 분리된 시트를 각각 파일로 저장하기
2023.08.18 - 월별 데이터를 각 시트로 한꺼번에 나누는 원초적인 매크로
'매크로&VBA' 카테고리의 다른 글
월별 데이터를 각 시트로 한꺼번에 나누는 원초적인 매크로 (0) | 2023.08.18 |
---|---|
월별로 분리된 시트를 각각 파일로 저장하기 (0) | 2023.07.22 |
소수 나타내기 (0) | 2023.07.07 |
텍스트와 섞여 있는 수식을 계산하는 방법 (0) | 2023.06.22 |
한 행이나 한 열에 나열된 데이터를 일정한 개수로 잘라 나열하기 (0) | 2023.01.18 |