код, который я в настоящее время используют шпагат:Как разделить и реструктурировать клетки с помощью Excel VBA
И меняет его:
Однако, это формат, в котором Мне требуются данные:
Это копия моего текущего кода:
Sub SplitCells()
Dim rColumn As Range
Dim lFirstRow As Long
Dim lLastRow As Long
Dim lRow As Long
Dim lLFs As Long
Set rColumn = Columns("D")
lFirstRow = 1
lLastRow = rColumn.Cells(Rows.Count).End(xlUp).Row
For lRow = lLastRow To lFirstRow Step -1
lLFs = Len(rColumn.Cells(lRow)) - Len(Replace(rColumn.Cells(lRow), vbLf, ""))
If lLFs > 0 Then
rColumn.Cells(lRow + 1).Resize(lLFs).EntireRow.Insert xlShiftDown
rColumn.Cells(lRow).Resize(lLFs + 1).Value = Application.Transpose(Split(rColumn.Cells(lRow), vbLf))
End If
Next lRow
End Sub
Любая помощь/комментарии будут оценены.
См. Комментарий ниже – Chris
@Chris Я отредактировал свой ответ, чтобы продемонстрировать, что он делает то, что вы хотите, чтобы он делал .... Вы должны делать что-то неправильно или не поставлять все необходимые данные. –
Убедитесь, что видимые пустые ячейки в столбец D на самом деле EMPTY для корректной работы 'IsEmpty (cell)'. Попробуйте изменить условие из 'IsEmpty (Range (« D »и i))' to 'Len (Range (« D »& i)) = 0' –