반응형
매크로 설명
- 특정 열에서 같은 내용이 반복적으로 나타나는 경우 해당 셀들을 병합하는 매크로이다.
- 데이터 활용에 있어서 셀 병합을 선호하지 않지만, 정리를 위해서 가끔식 필요한 매크로이다.
- 대략적으로 만들어서 빈 셀 처리 등은 문제가 발생할 수 있다. (매크로를 실행하기 전 시트를 백업해두자.)
- 사용 조건: 예시 동영상과 같이 빈 셀이 없어야 한다. 빈 셀이 없도록 데이터를 예쁘게 만져놓아야 한다.
매크로 실행 동영상
VBA Code
Option Explicit
Sub mergeCells()
Dim i As Long
Dim marker As Long
Dim lastRow As Long
Dim mergeCol As Long
Application.DisplayAlerts = False '병합시 발생하는 대화창 off
With ActiveSheet.UsedRange
lastRow = .Row + .Rows.Count - 1 '마지막 셀 번호
End With
For mergeCol = 1 To 3 '각 열을 순환하는 변수 mergeCol(필요시 변경)
i = 1 '각 행을 순환하는 변수 초기화
marker = 1 '같은 내용이 있는 셀의 첫 번째 셀을 마킹하는 변수 초기화
Do
If Cells(i, mergeCol) <> Cells(i + 1, mergeCol) Then 'i 번째 셀과 그 다음 셀 값이 다른 경우, 즉 marker 셀에서 i번째 셀까지 같은 내용인 경우
Range(Cells(marker, mergeCol), Cells(i, mergeCol)).Merge 'marker 셀에서부터 i 번째 셀까지 병합
marker = i + 1 '다음 셀을 마킹
End If
i = i + 1
Loop While i <> lastRow + 1 '마지막 셀 +1 까지 순환
Next
Application.DisplayAlerts = True '대화창 살리기
End Sub
Copyright (2017) Ruahneuma. All Rights Reserved.
반응형
'VBA Macro > VBA Excel' 카테고리의 다른 글
[엑셀] 글자 수 세기 (사용자 정의 함수) (0) | 2018.01.11 |
---|---|
[엑셀] DOM 방식의 웹페이지 정보 가져오기 (사이트 추천) (0) | 2017.12.22 |
[엑셀] XML 파싱하기 #1 - 웹페이지 소스코드 따오기(기본코드) (0) | 2017.12.02 |
[엑셀] 빈행을 동일하게 채우기 매크로 (0) | 2017.11.16 |
[엑셀] 빈 행, 빈셀 삭제하기 매크로 (0) | 2017.11.14 |