엑셀 문서 안에서도 VBA(Visual Basic for Applications)를 사용하여 데이터를 필터링하고 분리하는 매크로를 작성할 수 있습니다. 아래는 VBA를 사용하여 엑셀 문서 안에서 실행할 수 있는 방법을 보여주는 코드입니다.
엑셀 VBA 그룹별 파일 분리 저장 방법
- 먼저 엑셀 파일을 엽니다.
- 엑셀 파일 안에서 Alt + F11을 눌러 VBA 편집기를 엽니다.
- 삽입 > 모듈을 선택하여 새 모듈을 추가합니다.
- 다음 코드를 모듈에 붙여넣습니다
엑셀 VBA 그룹별 파일 분리 저장 방법 (F열 그룹핑)
Sub 그룹핑해서파일로저장하기()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim filterColumn As String
Dim uniqueValues As Collection
Dim value As Variant
Dim groupRange As Range
Dim newWorkbook As Workbook
Dim fileName As String
Dim firstRow As Range
' 시트 선택
Set ws = ThisWorkbook.ActiveSheet
' 데이터가 있는 범위 선택
Set rng = ws.UsedRange
' 그룹화할 열 선택
filterColumn = "F"
' 그룹화할 열에서 고유한 값 찾기
Set uniqueValues = New Collection
On Error Resume Next
For Each cell In rng.Columns(filterColumn).Cells
uniqueValues.Add cell.Value, CStr(cell.Value)
Next cell
On Error GoTo 0
' 각 그룹별로 분리된 파일 생성
For Each value In uniqueValues
' 그룹화된 범위 선택
Set groupRange = rng.Rows(1).EntireRow ' 헤더 행 포함
For Each cell In rng.Columns(filterColumn).Cells
If cell.Value = value Then
Set groupRange = Union(groupRange, cell.EntireRow)
End If
Next cell
' 그룹명을 파일명으로 사용
fileName = ThisWorkbook.Path & "\" & value & "_그룹.xlsx" ' 파일 이름에 맞게 변경
' 새로운 워크북 생성
Set newWorkbook = Workbooks.Add
' 그룹화된 데이터 복사하여 새 워크북에 붙여넣기
groupRange.Copy newWorkbook.Sheets(1).Range("A1")
' 새 워크북 저장
newWorkbook.SaveAs fileName
newWorkbook.Close
MsgBox "그룹화된 파일이 생성되었습니다. 파일명: " & fileName
Next value
End Sub
위 코드를 사용하면 엑셀 문서 안에서 VBA 매크로를 실행하여 데이터를 필터링하고 필터링된 데이터를 새로운 엑셀 파일로 분리할 수 있습니다. 코드를 실행하면 사용자에게 필터링할 그룹을 입력하는 메시지가 표시됩니다. 그룹을 입력한 후 확인을 클릭하면 해당 그룹에 해당하는 데이터가 새로운 엑셀 파일로 분리됩니다.