728x90
반응형
엑셀 파일에 여러 시트가 있을 때, 각 시트를 개별 Excel 파일(.xlsx)로 분할 저장하는 방법은 크게 3가지입니다. 시트가 많다면 VBA 매크로를 사용하는 방법이 가장 효율적입니다.
방법 1. VBA로 모든 시트를 개별 파일로 저장하기 (추천)
예를 들어 통합문서.xlsx에 시트가 10개 있다면, 실행 한 번으로 10개의 엑셀 파일을 생성할 수 있습니다.
실행 순서

1. VBA 편집기 열기
엑셀 파일을 연 상태에서 Alt + F11을 누릅니다.

2. 모듈 삽입
상단 메뉴에서 삽입(Insert) → 모듈(Module)을 선택합니다.

3. 아래 코드 붙여넣기
생성된 모듈의 코드 창에 코드를 복사해 넣습니다.

4. 매크로 실행
F5를 누르면 저장 위치를 선택하는 창이 나타납니다.
VBA 코드
Sub SplitSheetsToFiles()
Dim ws As Worksheet
Dim newWb As Workbook
Dim folderPath As String
Dim fileName As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "분할 파일 저장 폴더 선택"
If .Show <> -1 Then Exit Sub
folderPath = .SelectedItems(1) & Application.PathSeparator
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo ErrorHandler
For Each ws In ThisWorkbook.Worksheets
ws.Copy
Set newWb = ActiveWorkbook
fileName = ws.Name
fileName = Replace(fileName, "\", "_")
fileName = Replace(fileName, "/", "_")
fileName = Replace(fileName, ":", "_")
fileName = Replace(fileName, "*", "_")
fileName = Replace(fileName, "?", "_")
fileName = Replace(fileName, """", "_")
fileName = Replace(fileName, "<", "_")
fileName = Replace(fileName, ">", "_")
fileName = Replace(fileName, "|", "_")
newWb.SaveAs _
Filename:=folderPath & fileName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook
newWb.Close SaveChanges:=False
Next ws
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "모든 시트를 개별 파일로 저장했습니다.", vbInformation
Exit Sub
ErrorHandler:
If Not newWb Is Nothing Then newWb.Close SaveChanges:=False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "오류가 발생했습니다: " & Err.Description, vbExclamation
End Sub728x90
반응형
'13.일상다반사' 카테고리의 다른 글
| [용어] Glue code (0) | 2026.10.26 |
|---|---|
| [용어] 빨랫줄 역설(Clothesline Paradox) (0) | 2026.10.26 |
| 26.10.1 AI-Cloud Big Tech 2026 (0) | 2026.10.01 |
| 읽지 않는 사람들 (0) | 2026.09.09 |
| 많이 읽으면 똑똑해질까 (0) | 2026.09.09 |


