반응형
매크로 설명
- 워크시트 데이터 중에서 강제 줄바꿈(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
Copyright (2018) Ruahneuma. All Rights Reserved.
반응형
'VBA Macro > VBA Excel' 카테고리의 다른 글
엑셀 VBA 실제 사용 중인 영역의 경계 선택하기 (0) | 2018.03.07 |
---|---|
[엑셀] 지정한 셀 크기에 맞게 사진 삽입하기 (0) | 2018.03.06 |
[엑셀] 워크시트의 오류값 리턴(CVErr 함수) (0) | 2018.03.05 |
[엑셀] 병합된 셀을 풀고 같은 내용으로 채우기 (1) | 2018.01.24 |
[엑셀] VBA로 스택 구현 (0) | 2018.01.14 |