Разделение текста в ячейках на отдельные строки

Разделение текста в ячейках на отдельные строки

Я наткнулся на этот код некоторое время назад, он работает отлично, но я хотел бы внести в него несколько изменений, чтобы отразить то, что я хочу. Я некоторое время возился с этим кодом, и до сих пор не смог разобраться с ним самостоятельно, и мне нужна помощь.

Ссылка на исходный вопрос: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

Как мне изменить этот код, если у меня есть больше столбцов, которые нужно отсортировать так, как этот код сортирует данные в настоящее время. Потому что на данный момент он обрабатывает только 3 столбца слева и справа от столбца 'B'.

Не знаю, расплывчато ли я выражаюсь, но я действительно не знаю, как объяснить свою проблему. Любая помощь будет оценена по достоинству.

решение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)

Или, другими словами, вы компенсируетенгденможет быть положительным или отрицательным (вправо/влево или вниз/вверх) путем помещения его в offset()функцию.

Связанный контент