반응형
문제상황
가지고 있는 xlsx 파일이 여러 개의 시트로 구성되어 있음.
이 파일을 csv로 저장하고 싶은데, csv는 하나의 시트만 저장이 가능함.
따라서 이 시트들을 각각 csv로 자동저장하고 싶음.
해결방법
엑셀의 여러 시트를 각각 CSV 파일로 저장하는 VBA 코드를 아래에 제공합니다. 이 코드는 엑셀 파일 내의 모든 시트를 반복하며 각 시트를 CSV 형식으로 저장합니다.
- 엑셀 파일을 엽니다.
Alt + F11
을 눌러 VBA 편집기를 엽니다.Insert
->Module
을 선택하여 새 모듈을 추가합니다.- 아래 코드를 복사하여 모듈에 붙여넣습니다.
F5
키를 눌러 코드를 실행합니다.
Sub SaveSheetsAsCSV()
Dim ws As Worksheet
Dim csvFilePath As String
Dim folderPath As String
Dim fileName As String
' 저장할 폴더 경로 설정
folderPath = "C:"
' 폴더가 없으면 생성
If Dir(folderPath, vbDirectory) = "" Then
MkDir folderPath
End If
' 모든 시트를 반복하며 각각을 CSV 파일로 저장
For Each ws In ThisWorkbook.Worksheets
ws.Copy
fileName = ws.Name & ".csv"
csvFilePath = folderPath & fileName
ActiveWorkbook.SaveAs fileName:=csvFilePath, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close False
Next ws
MsgBox "모든 시트가 CSV 파일로 저장되었습니다.", vbInformation
End Sub
이 코드는 다음과 같은 동작을 수행합니다:
folderPath
변수를 통해 CSV 파일을 저장할 폴더 경로를 설정합니다.- 설정된 경로에 폴더가 없으면 생성합니다.
- 현재 워크북의 모든 시트를 반복하며 각 시트를 CSV 파일로 저장합니다.
- CSV 파일은 원본 파일과 동일한 위치에 "CSV Files" 폴더에 저장됩니다.
코드를 실행하면 각 시트가 CSV 파일로 저장되고 완료 메시지가 표시됩니다.
주의점
- 파일 경로에 한글이 들어가 있으면 오류가 날 수 있음
해결 결과
이렇게 기존 xlsx 파일이 있는 경로에 여러 개의 csv 파일로 저장되었음.
반응형
'🖥️ IT, 컴퓨터 > 🧮 엑셀' 카테고리의 다른 글
[Excel] 엑셀 차트 점 옆에 원하는 항목의 레이블 추가하는 법 :: 데이터 레이블 서식/셀 값 설정 (0) | 2024.08.19 |
---|---|
[Excel] 엑셀 칸에 - 빼기 표시 "이 수식에 문제가 있습니다" 오류 해결법 (0) | 2024.07.31 |
[Excel] 엑셀에서 시트명만 txt 파일로 추출하기 :: VBA 사용 (0) | 2024.07.15 |
[Excel] 엑셀에서 여러 시트에서 특정 열만 추출해서 새로운 파일로 저장하기 :: VBA 이용 (0) | 2024.07.15 |
[Excel] 엑셀 시트에서 N시간 더하는 수식 (0) | 2024.03.03 |
댓글