회사에서 엑셀로 보고서를 작성하다 보면, 데이터 중간에 비어있는 셀을 하나씩 병합해서 정리해야 할 때가 있습니다. 셀 병합은 단순해 보여도, 여러 개의 셀을 하나씩 병합하려면 실제로 상당히 많은 시간과 노력이 필요합니다.😭
비어있는 셀을 하나씩 병합 하려면 상당한 시간이 필요합니다.🥲
엑셀의 자동채우기 기능과 간단한 매크로를 활용하면, 클릭 몇 번으로 셀 병합을 해결할 수 있습니다.😊
👇엑셀 셀 병합 매크로 (아래 코드를 매크로 편집기에 붙여넣기하세요!)
Sub 셀병합매크로()
Dim rng As Range: Dim mergeRng As Range
Dim i As Long: Dim j As Long
Const 가운데정렬 As Boolean = True
On Error Resume Next
Set rng = Application.InputBox("병합할 범위를 선택하세요.", "병합할 범위 선택", Type:=8)
If rng Is Nothing Then Exit Sub: On Error GoTo 0
For i = rng.Rows.Count To 2 Step -1
For j = rng.Columns.Count To 1 Step -1
If rng.Cells(i, j).Value = rng.Cells(i - 1, j).Value _
Or rng.Cells(i, j).Value = "" Then
Set mergeRng = Range(rng.Cells(i - 1, j), rng.Cells(i, j))
With mergeRng
.Merge
If 가운데정렬 = True Then
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End If
End With
End If
Next
Next i
MsgBox "선택한 범위의 셀 병합이 완료되었습니다!"
End Sub
- 셀 병합 패턴이 동일한 경우 : 만약 병합할 범위의 패턴(행 높이, 열 너비)이 동일한 경우, 엑셀 자동채우기를 사용하면 셀을 편리하게 병합 할 수 있습니다. 예제파일의 첫번째 시트에서 "카테고리 / 종목명 / 종목코드"과 같이 병합할 범위의 패턴이 동일한 경우 자동채우기를 사용합니다. 먼저 카테고리의 첫번째 항목으로 "반도체/IT"가 입력된 A2:A3 범위를 선택 후 셀을 병합합니다.
첫번째 범위를 선택 후 셀을 병합합니다.
- 이후 병합한 범위를 아래로 자동채우기합니다. (이 때, 기존 데이터의 값이 바뀌어도 괜찮습니다. 그대로 진행해주세요!😊)
병합한 범위를 아래로 자동채우기합니다.
- 값을 자동채우기하면 오른쪽 아래에 "자동채우기 옵션"이 표시됩니다. 자동채우기 옵션에서 [서식만 채우기]를 선택하면 기존 데이터는 유지되고 셀 병합된 서식이 채워집니다.
자동채우기 옵션 → 서식만 채우기를 선택합니다.
- 동일한 방법으로 범위를 오른쪽으로 자동채우기한 후, 자동채우기 옵션에서 [서식만 채우기]를 선택하면 셀 병합 작업이 한 번에 완료됩니다.
동일한 방법으로 나머지 범위도 자동채우기합니다.
- 패턴이 다른 경우 : 만약 병합할 범위의 패턴이 다른 경우에는 자동채우기를 사용할 수 없습니다. 이러한 경우에는 엑셀 매크로를 사용하면 패턴이 불규칙한 범위의 셀을 한 번에 병합할 수 있습니다. 먼저 아래 작성된 매크로 코드를 복사합니다.
Sub 셀병합매크로()
Dim rng As Range: Dim mergeRng As Range
Dim i As Long: Dim j As Long
Const 가운데정렬 As Boolean = True
On Error Resume Next
Application.DisplayAlerts = False
Set rng = Application.InputBox("병합할 범위를 선택하세요.", "병합할 범위 선택", Type:=8)
If rng Is Nothing Then Exit Sub: On Error GoTo 0
For i = rng.Rows.Count To 2 Step -1
For j = rng.Columns.Count To 1 Step -1
If rng.Cells(i, j).Value = rng.Cells(i - 1, j).Value _
Or rng.Cells(i, j).Value = "" Then
Set mergeRng = Range(rng.Cells(i - 1, j), rng.Cells(i, j))
With mergeRng
.Merge
If 가운데정렬 = True Then
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End If
End With
End If
Next
Next i
Application.DisplayAlerts = True
MsgBox "선택한 범위의 셀 병합이 완료되었습니다!"
End Sub
- 이후 엑셀에서 단축키 Alt + F11 을 눌러 매크로 편집기를 실행한 후, [삽입] → [모듈]을 선택해서 새로운 모듈을 추가합니다.
매크로 편집기를 실행한 후, [삽입] - [모듈] 로 모듈을 추가합니다.
- 추가된 모듈에 복사한 코드를 붙여넣습니다.
복사한 코드를 붙여넣습니다.
- 이제 매크로 편집기 상단의 재생버튼을 클릭하면 코드가 실행되면서 범위를 선택하는 입력창이 나타납니다.
재생 버튼을 클릭해서 매크로를 실행합니다.
- 범위를 선택한 후 [확인] 버튼을 클릭하면 셀 병합이 완료됩니다.
범위 선택 후, [확인] 버튼을 클릭하면 셀 병합이 완료됩니다.
- 셀 병합 해제 후 빈칸 채우기 : 이 외에도, 병합된 범위의 셀 병합을 해제했을 때 나오는 빈칸은 '이동 옵션' 기능으로 한 번에 채울 수 있습니다. 이동옵션 기능을 사용해 빈 칸을 빠르게 채우는 방법은 아래 영상 강의를 참고하세요!👇