안녕하세요.
월별로 각 시트에 분리된 데이터를 각각 파일로 저장하는 방법을 소개합니다.
2022.11.04 - 엑셀 매크로] 월별 데이터를 각 시트로 나누는 상대 참조 매크로
2023.07.19 - 월별 데이터를 각 시트로 한꺼번에 나누는 매크로
실습 파일 다운로드
현재 파일에 총 13개 시트가 있습니다.
마지막 2022년 시트에 전체 데이터와 피벗 테이블이 있고, 첫번째 Sheet1부터 열 두번째 Sheet12까지 월별로 분리된 데이터가 있습니다.
Sheet1~Sheet12를 각각 파일로 저장합니다.
시트를 저장하는 매크로를 기록합니다.
[개발 도구]-[코드]-[매크로 기록]을 선택합니다.
매크로 이름에 파일로저장을 입력하고 [확인]을 누릅니다.
시트 탭 Sheet1에서 마우스 오른쪽 클릭해서 [이동/복사]를 선택합니다.
[이동/복사] 대화상자에서 아래쪽 '복사본 만들기'에 체크하고 '대상 통합 문서'에서 '(새 통합 문서)'를 선택하고 [확인]을 누릅니다.
[파일]-[다른 이름으로 저장]을 선택해서 현재 파일이 저장된 위치에 1월이란 이름으로 저장합니다.
원래 파일을 선택한 뒤 [기록 중지]를 누릅니다.
[개발 도구]-[코드]-[매크로]를 선택합니다.
'파일로저장' 매크로를 선택한 상태에서 [편집]을 누릅니다.
만들어진 코드입니다.
Sub 파일로저장()
'
' 파일로저장 매크로
'
'
Sheets("Sheet1").Select
Sheets("Sheet1").Copy
ChDir "D:\share"
ActiveWorkbook.SaveAs Filename:="D:\share\1월.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Windows("실습파일.xlsx").Activate
End Sub
실행과 상관없는 주석문은 지우고, Sheets("Sheet1").Select와 경로 이동하는 ChDir "D:\share"를 지웁니다.
Sub 파일로저장()
Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs Filename:="D:\share\1월.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Windows("실습파일.xlsx").Activate
End Sub
현재 파일의 저장 경로를 나타내는 코드가 있습니다.
ThisWorkbook.Path
변수를 써서 저장할 위치를 나타냅니다.
Sheet1부터 Sheet12까지 저장해야 하므로 반복문 For를 씁니다.
Windows 개체 대신 Workbooks 개체를 씁니다.
완성된 코드입니다.
Sub 파일로저장()
저장경로 = ThisWorkbook.Path
For i = 1 To 12
Sheets("Sheet" & i).Copy
ActiveWorkbook.SaveAs Filename:=저장경로 & "\" & i & "월.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Workbooks("실습파일.xlsx").Activate
Next i
End Sub
제대로 동작하는지 확인하기 전에 매크로를 기록할 때 만든 1월.xlsx 파일을 닫고 지워야 합니다.
파일을 지우고 준비가 되었으면 매크로를 실행해서 제대로 동작하는지 확인합니다.
화면이 여러 번 깜빡이고 시간이 좀 걸립니다.
저장 폴더를 확인해 보면 1월.xlsx부터 12월.xlsx 파일이 만들어져 있습니다.
이제 필요 없는 시트는 지우면 됩니다.
매크로를 만들 때 '이동'이 아닌 '복사'를 일부러 사용했습니다.
매크로를 실행한 결과는 [실행 취소] 기능으로 되돌릴 수 없습니다.
시트가 각각 잘 저장되었다면 시트를 지우는 작업은 간단히 할 수 있는 작업입니다.
또 필요하다면 추가로 코드를 넣으면 됩니다.
필요하신 분께 도움이 되길 바랍니다.
2023.08.18 - 월별 데이터를 각 시트로 한꺼번에 나누는 원초적인 매크로
'매크로&VBA' 카테고리의 다른 글
이번 달 날짜 수만큼 시트를 만들고 일요일은 탭 색을 빨강으로 바꾸기 (0) | 2024.01.04 |
---|---|
월별 데이터를 각 시트로 한꺼번에 나누는 원초적인 매크로 (0) | 2023.08.18 |
월별 데이터를 각 시트로 한꺼번에 나누는 매크로 (0) | 2023.07.19 |
소수 나타내기 (0) | 2023.07.07 |
텍스트와 섞여 있는 수식을 계산하는 방법 (0) | 2023.06.22 |