VB(A)

데이터를 셀별로 나누기

당근쨈 2019. 1. 17. 21:51


https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=319076651 에 올라온 질문입니다.

왼쪽의 표를 오른쪽 표처럼 바꾸고자 하는 질문입니다.

파워쿼리 또는 매크로를 이용하면 쉽게 해결할 수 있습니다.


코드 작성 흐름입니다.

   1. B열을 순환하면서

   2. , 를 기준으로 나누어 임의의 배열에 삽입합니다.

   3. 삽입된 배열을 다시 순환하면서 D, E열에 출력합니다.

자세한 코드와 파일은 아래에 있습니다.


Sub Macro()
 
    Dim SingleRange As Range
    Dim tmp As Variant
    Dim i As Integer
    Dim j As Integer
    
    '기존 자료를 삭제합니다.
    Range("D1").CurrentRegion.Clear
    j = 1
    
    'B열을 순환합니다.
    For Each SingleRange In Range("B1", Cells(Rows.Count, 2).End(3))
        
        '","를 기준으로 나누어 배열에 삽입합니다.
        tmp = Split(SingleRange, ",")
        
        '","를 기준으로 나뉜 배열을 순환하여 D, E열에 출력합니다.
        For i = 0 To UBound(tmp)
        
            Cells(j, "D"= SingleRange.Offset(, -1)
            Cells(j, "E"= tmp(i)
            j = j + 1
        
        Next i
        
    Next SingleRange
    
    '가운데 정렬 및 선 설정을 합니다.
    With Range("D1").CurrentRegion
        .Borders.LineStyle = xlContinuous
        .HorizontalAlignment = xlCenter
    End With
        
End Sub
 
cs


통합 문서1.xls