VBA 코드를 활용한 엑셀 데이터 병합 및 분할 방법
엑셀은 많은 양의 데이터를 처리하는 데에 있어서 유용한 도구입니다. 하지만 데이터의 양이 많아지면 처리하기가 어려워집니다. 이럴 때 VBA 코드를 활용하면 엑셀 데이터의 병합 및 분할이 쉬워집니다.
1. 엑셀 데이터의 병합
두 개의 엑셀 파일을 하나로 병합하고자 할 때, VBA 코드를 사용해보겠습니다.
Sub MergeExcelFiles()
Dim CurrentWorkbook As Workbook
Dim MergeWorkbooks As Workbook
Dim CurrentSheet As Worksheet
Dim MergeSheet As Worksheet
' Set the current Excel workbook as the reference
Set CurrentWorkbook = ThisWorkbook
Set CurrentSheet = CurrentWorkbook.Sheets(1)
' Open the workbook to be merged
Set MergeWorkbooks = Workbooks.Open("file path")
Set MergeSheet = MergeWorkbooks.Sheets(1)
' Copy data from the workbook to be merged
MergeSheet.UsedRange.Copy
' Merge into the last row of the current workbook
Dim LastRow As Long
LastRow = CurrentSheet.Range("A" & Rows.Count).End(xlUp).Row
CurrentSheet.Range("A" & LastRow + 1).PasteSpecial
' Close the workbook to be merged
MergeWorkbooks.Close
End Sub
이 코드를 실행하면, 파일 경로
에 있는 엑셀 파일의 데이터가 현재 열려있는 엑셀 파일의 마지막 행에 병합됩니다.
2. 엑셀 데이터의 분할
하나의 엑셀 파일에 있는 데이터를 지정한 행 수에 맞게 여러 개의 엑셀 파일로 분할하고자 할 때, VBA 코드를 사용해보겠습니다.
Sub SplitExcelFileByRows()
' Open the Excel file to be split
Dim SourceWorkbook As Workbook
Set SourceWorkbook = Workbooks.Open("file path")
' Specify the number of rows per split
Dim RowsPerFile As Long
RowsPerFile = 1000
' Specify the destination path for split files
Dim DestinationPath As String
DestinationPath = "destination path"
Dim CurrentRow As Long
CurrentRow = 2
Dim FileIndex As Long
FileIndex = 1
Dim CurrentWorkbook As Workbook
Dim CurrentSheet As Worksheet
Dim DestinationWorkbook As Workbook
Dim DestinationSheet As Worksheet
' Create split Excel files
Do While CurrentRow <= SourceWorkbook.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
' Copy specified number of rows to create a new file
Set CurrentWorkbook = ThisWorkbook
Set CurrentSheet = SourceWorkbook.Sheets(1)
CurrentSheet.Range("A" & CurrentRow & ":A" & CurrentRow + RowsPerFile - 1).Copy
' Set name for the split file
Dim NewFileName As String
NewFileName = "file name " & FileIndex & ".xlsx"
' Create a new split file
Set DestinationWorkbook = Workbooks.Add
Set DestinationSheet = DestinationWorkbook.Sheets(1)
DestinationSheet.Range("A1").PasteSpecial
' Save the newly created file
DestinationWorkbook.SaveAs DestinationPath & NewFileName
' Close the newly created file
DestinationWorkbook.Close
' Move to the next set of rows for the next split file
CurrentRow = CurrentRow + RowsPerFile
FileIndex = FileIndex + 1
Loop
' Close the source Excel file
SourceWorkbook.Close
End Sub
이 코드를 실행하면, 파일 경로
에 있는 엑셀 파일의 데이터가 저장 경로
에 지정된 경로에 분할된 엑셀 파일로 저장됩니다. 각각의 파일은 파일 이름 1
, 파일 이름 2
, 파일 이름 3
, ... 의 형태로 저장됩니다.
3. 마치며
VBA 코드를 활용하면 엑셀 데이터의 병합 및 분할이 쉬워집니다. 엑셀을 사용하는 모든 사용자들은 VBA 코드를 활용해 병합 및 분할 작업을 보다 효율적이고 간편하게 처리할 수 있습니다.
포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!
행복한 하루 되세요!
'■ 칼퇴를 위한 VBA : 사례 > - VBA for 엑셀' 카테고리의 다른 글
VBA를 활용한 엑셀 데이터 필터링 방법 (0) | 2023.06.26 |
---|---|
엑셀 VBA로 특정 셀 찾아서 값 변경하는 방법 (0) | 2023.06.26 |
엑셀 VBA를 이용한 데이터 유효성 검증 자동화하기 (0) | 2023.06.26 |
VBA 스크립트를 활용한 엑셀 차트 제거 방법 (0) | 2023.06.26 |
VBA를 활용한 엑셀 데이터 필터링 해제 방법 (0) | 2023.06.26 |