VBA Macro/VBA Excel
[엑셀VBA] 강제 줄바꿈 셀 분리하기
루아흐뉴마
2018. 3. 5. 20:07
반응형
매크로 설명
- 워크시트 데이터 중에서 강제 줄바꿈(Alt + Enter)이 들어간 셀을 나누는 매크로이다.
- 코드의 요점은 강제 줄바꿈이 있는 셀을 찾아서 줄바꿈을 카운트하고 해당 카운트만큼 셀을 삽입하는 방식이다.
- 필요에 의해 가볍게 쓰려고 만든 코드이다. 곧바로 가져다 쓰기에는 무리가 있을 수 있다. (알맞은 변형이 필요하다.)
매크로 실행 동영상
VBA Code
Sub forced_enter_separation()
Dim k As Integer, cnt As Integer
Dim varSize As Integer
Dim myColumn As String
Dim lastRow As Integer
With ActiveSheet.UsedRange
lastRow = .Row + .Rows.Count '마지막 셀 번호 + 1
End With
myColumn = "B" '줄바꿈을 분리할 열, 필요시 변경
For k = lastRow To 2 Step -1 '셀 삽입/삭제 코드는 역방향으로 탐색
varSize = UBound(Split(Cells(k - 1, myColumn), Chr(10))) '강제 줄바꿈이 있는 셀의 내용을 배열로 반환
If InStr(1, Cells(k - 1, myColumn), Chr(10)) > 0 Then '강제 줄바꿈이 있는 경우
For cnt = 0 To varSize - 1 '배열 크기의 -1만큼 순환
Cells(k, myColumn).EntireRow.Insert shift:=xlShiftDown '행 삽입
Cells(k, myColumn) = Split(Cells(k - 1, myColumn), Chr(10))(varSize - cnt) '배열 내용 할당
Next
Cells(k - 1, myColumn) = Split(Cells(k - 1, myColumn), Chr(10))(varSize - cnt) '최초의 줄바꿈 대상 셀에 첫번째 내용 할당
End If
Next k
End Sub

반응형