반응형
안녕하세요.
앞에서 월별 데이터를 각 시트로 한꺼번에 나누는 매크로를 소개했습니다.
2022.11.04 - 엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로
2023.07.19 - 월별 데이터를 각 시트로 한꺼번에 나누는 매크로
월별로 분리된 시트를 각각 파일로 저장하는 매크로도 소개했습니다.
2023.07.22 - 월별로 분리된 시트를 각각 파일로 저장하기
앞에서 소개한 방법은 데이터를 피벗 테이블로 분석하여 월별로 '자세한 정보 표시'를 선택해서 각 시트로 나타내는 것이었습니다.
이번에 소개하는 방법은 나눈 데이터를 저장할 12개 시트를 만들고 데이터 처음부터 끝까지 반복해서 거래일자에서 월을 확인해서 각 시트로 나누는 방법입니다.
완성 파일 다운로드
데이터가 많지 않은데 실행시간이 너무 오래 걸려 화면 업데이팅 속성(ScreenUpdating)을 해제해서 실행 속도를 향상시켰고, 도대체 얼마나 시간이 걸리는지, 그리고 언제 작업이 끝나는지 시각적으로 보이기 위해 타이머를 이용해 걸린 시간을 계산해서 MsgBox에 나타내는 코드도 있습니다.
아주 많은 데이터를 대상으로는 쓸 수 없는 코드입니다.
코드를 실행하려면 먼저 완성 파일을 다운로드하고, 1월부터 12월까지 시트를 지운 후 실행해야 합니다.
Sub 매크로1()
Sheets("2022년").Select
t = Timer
Application.ScreenUpdating = False
For i = 1 To 12
Sheets.Add
Next i
Sheets("2022년").Range("표1[#Headers]").Copy
For i = 1 To 12
Sheets(i).Name = i & "월"
Sheets(i).Activate
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteColumnWidths
ActiveCell.Offset(1, 0).Select
Next i
Sheets("2022년").Select
Range("A2").Select
Do
월 = Month(ActiveCell)
Range(ActiveCell, ActiveCell.End(xlToRight)).Copy
Sheets(월 & "월").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Range("A1").Select
Sheets("2022년").Select
ActiveCell.Offset(1, 0).Range("A1").Select
DoEvents
Loop While ActiveCell <> ""
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub
필요하신 분께 도움이 되길 바랍니다.
반응형
'매크로&VBA' 카테고리의 다른 글
일정한 시간 간격으로 매크로 실행하기 (0) | 2024.08.22 |
---|---|
이번 달 날짜 수만큼 시트를 만들고 일요일은 탭 색을 빨강으로 바꾸기 (0) | 2024.01.04 |
월별로 분리된 시트를 각각 파일로 저장하기 (0) | 2023.07.22 |
월별 데이터를 각 시트로 한꺼번에 나누는 매크로 (0) | 2023.07.19 |
소수 나타내기 (0) | 2023.07.07 |