|
'---------------------------
Sub re_arrange()
'---------------------------
Dim rngX As Range
Set rngX = [A2:C4]
Dim row As Range
Dim iStart As Long
Dim iRow As Long
' 시작 셀
Dim rStart As Range: Set rStart = [A7]
' 기존 자료 지우기
rStart.CurrentRegion.ClearContents
Dim cell As Range, vX As Variant
' 각 행을 돌며
'---------------------------
For Each row In rngX.Rows
'---------------------------
' 각 셀을 돌며
'---------------------------
For c = 1 To row.Cells.Count
'---------------------------
' chr(10)을 구분자로 구분된 데이타를 배열로 담기
vX = Split(Trim(row.Cells(c).Value), Chr(10))
' 데이타 붙여넣기
rStart.Offset(0, c - 1).Resize(UBound(vX) + 1).Value = Application.Transpose(vX)
Next c
' 행의 개수 구하기
iRow = get_length(row)
' 다음 시작 셀
Set rStart = rStart.Offset(iRow)
'---------------------------
Next row
'---------------------------
End Sub
'----------------------------------------------
Function get_length(row As Range) As Long
'----------------------------------------------
Dim iCnt As Long, cell As Range
iCnt = 0
' 각 셀을 돌며
'------------------------------
For Each cell In row.Cells
'------------------------------
' 최대 개수 구하기
iCnt = Application.Max( _
iCnt, _
UBound(Split(Trim(cell.Value), Chr(10))) + 1 _
)
'------------------------------
Next cell
'------------------------------
' 최대 개수 리턴
get_length = iCnt
'-------------------
End Function
'-------------------
|
|