반응형

안녕하세요.

 

앞에서 월별 데이터를 각 시트로 한꺼번에 나누는 매크로를 소개했습니다.

 

2022.11.04 - 엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로

 

엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로

실습 파일 다운로드 https://youtu.be/q4a9cTGmFFs 월별 데이터를 각 시트로 한꺼번에 나누는 매크로를 소개합니다. 2023.07.19 - 월별 데이터를 각 시트로 한꺼번에 나누는 매크로 월별 데이터를 각 시트로

hantip.net

2023.07.19 - 월별 데이터를 각 시트로 한꺼번에 나누는 매크로

 

월별 데이터를 각 시트로 한꺼번에 나누는 매크로

안녕하세요. 월별로 집계하는 피벗 테이블을 만들어 합계 값이 표시되는 셀을 더블 클릭하면 새 시트에 필터된 값이 복사되도록 매크로를 만들었습니다. 2022.11.04 - 엑셀 매크로] 월별 데이터를

hantip.net

 

월별로 분리된 시트를 각각 파일로 저장하는 매크로도 소개했습니다.

 

2023.07.22 - 월별로 분리된 시트를 각각 파일로 저장하기

 

월별로 분리된 시트를 각각 파일로 저장하기

안녕하세요. 월별로 각 시트에 분리된 데이터를 각각 파일로 저장하는 방법을 소개합니다. 2022.11.04 - 엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로 엑셀 매크로] 월별 데이터

hantip.net

 

앞에서 소개한 방법은 데이터를 피벗 테이블로 분석하여 월별로 '자세한 정보 표시'를 선택해서 각 시트로 나타내는 것이었습니다.

 

이번에 소개하는 방법은 나눈 데이터를 저장할 12개 시트를 만들고 데이터 처음부터 끝까지 반복해서 거래일자에서 월을 확인해서 각 시트로 나누는 방법입니다.

 

 

완성 파일 다운로드

 

실습파일.xlsm
0.18MB

 

데이터가 많지 않은데 실행시간이 너무 오래 걸려 화면 업데이팅 속성(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

 

필요하신 분께 도움이 되길 바랍니다.

반응형

+ Recent posts