Это сделает это. Он зацикливается на столбце, установленном как columnChecked
, и если верхняя запись в ячейке справа от нее («заархивированная») не соответствует «текущей» записи, она вставляет эту запись в соседнюю «заархивированную» ячейку. Вы можете / возможно должны настроить sheetName
, columnChecked
, rowStart
и rowEnd
, чтобы соответствовать вашим данным.
Option Explicit
Sub test()
Dim sheetName As String
sheetName = "Sheet1"
Dim columnChecked As String
columnChecked = "B"
Dim rowStart As Long
rowStart = 2
Dim rowEnd As Long
rowEnd = sheets(sheetName).Range(columnChecked & Rows.count).End(xlUp).row
Dim cell As Range
For Each cell In sheets(sheetName).Range(columnChecked & rowStart & ":" & columnChecked & rowEnd).Cells
If Split(cell.offset(0, 1).Value2, Chr(10))(0) <> cell.Value2 Then
cell.offset(0, 1).Value2 = cell.Value2 & Chr(10) & cell.offset(0, 1).Value2
End If
Next cell
End Sub