셀의 텍스트를 별도의 행으로 분할

셀의 텍스트를 별도의 행으로 분할

얼마 전에 이 코드를 발견했는데 완벽하게 작동하지만 내가 원하는 것을 반영하기 위해 몇 가지 수정을 가하고 싶습니다. 나는 이 코드를 한동안 만지작거렸지만 지금까지는 스스로 정리할 수 없었고 도움이 필요했습니다.

원래 질문 링크:https://stackoverflow.com/questions/19815321/text-to-rows-vba-excel

Option Explicit

Sub Main()

    Columns("B:B").NumberFormat = "@"
    Dim i As Long, c As Long, r As Range, v As Variant

    For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
        v = Split(Range("B" & i), "/")
        c = c + UBound(v) + 1
    Next i

    For i = 2 To c
        Set r = Range("B" & i)
        Dim arr As Variant
        arr = Split(r, "/")
        Dim j As Long
        r = arr(0)
        For j = 1 To UBound(arr)
            Rows(r.Row + j & ":" & r.Row + j).Insert Shift:=xlDown
            r.Offset(j, 0) = arr(j)
            r.Offset(j, -1) = r.Offset(0, -1)
            r.Offset(j, 1) = r.Offset(0, 1)
        Next j
    Next i

End Sub

이 코드가 현재 데이터를 정렬하는 방식으로 정렬해야 하는 열이 더 있는 경우 이 코드를 어떻게 변경할 수 있습니까? 현재는 'B' 열의 왼쪽과 오른쪽에 있는 3개의 열만 처리하기 때문입니다.

제가 모호한 것인지 아닌지는 모르겠지만 제 문제를 어떻게 설명해야 할지 모르겠습니다. 모든 도움을 주시면 감사하겠습니다.

답변1

이 코드 비트를 변경하면 -

r.Offset(j, 0) = arr(j)
r.Offset(j, -1) = r.Offset(0, -1)
r.Offset(j, 1) = r.Offset(0, 1)

추가 열을 포함하려면 -

r.Offset(j, 0) = arr(j)
r.Offset(j, -1) = r.Offset(0, -1)
r.Offset(j, 1) = r.Offset(0, 1)
r.Offset(j, 2) = r.Offset(0, 2)
r.Offset(j, 3) = r.Offset(0, 3)
r.Offset(j, 4) = r.Offset(0, 4)

즉, 다음과 같이 상쇄됩니다.N어디N함수에 넣으면 양수 또는 음수(오른쪽/왼쪽 또는 아래쪽/위)가 될 수 있습니다 offset().

관련 정보