Я действительно новичок в vba и буду признателен за любую помощь в следующей проблеме, которую я испытываю.Код возврата VBA и код заполнения
Описание проблемы (в связи с диаграммой ниже): 1 *) В c, мне удалось отделить возвратные вагоны, что приводит к 2 *) теперь, когда каждая возвратная каретка имеет свою собственную строку, мне нужна колонка b и с обеих сторон должны быть заполнены вниз, как показано в результате 3 *)
1*) b c e
y 1,2,3,4 y
z 5,6,7,8 z
2*) b c e
y 1 y
2
3
4
z 5 z
6
7
8
3*) b c e
y 1 y
y 2 y
y 3 y
y 4 y
z 5 z
z 6 z
z 7 z
z 8 z
Я включил мой исходный код для всех, чтобы проверить, я в настоящее время застрял о том, как я хотел бы получить к шагу 3.
Sub InString()
Dim rColumn As Range 'Set this to the column which needs to be worked through
Dim lFirstRow As Long
Dim lLastRow As Long
Dim lRow As Long 'Difference between first and last row
Dim lLFs As Long
Dim rRow As Range 'This will be used to drag the fill down between rows
Set rColumn = Columns("N")
lFirstRow = 2 'Starting may need to be adjusted, if additional columns are added
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 shift:=xlShiftDown 'added EntireRow to before insert, to bring whole row down, instead of previous issue where only rColumn was shifted down.
rColumn.Cells(lRow).Resize(lLFs + 1).Value = Application.Transpose(Split(rColumn.Cells(lRow), vbLf))
End If
Next lRow
Конец Sub
Спасибо,
Почему не для каждой ячейки между firstrow + 1 до lastrow = firstrow + 1? – Raystafarian
Привет, я не уверен, что я следую тому, что вы имеете в виду, пожалуйста, вы можете уточнить? – Sampson
Откуда вы возвращаетесь? Макрос у вас есть - я не понимаю, как он работает на 1, чтобы добраться до 2 – Raystafarian