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 
 
 Copyright (2018) Ruahneuma. All Rights Reserved.

 

반응형