Sub iConcatenate()
Dim i As Long
Dim iLastRow As Long
Dim j As Integer
Dim iLastCol As Integer
Dim stroka As String
iLastRow = Range("A1").End(xlDown).Row
For i = 1 To iLastRow
stroka = Cells(i, 1)
iLastCol = Cells(i, Columns.Count).End(xlToLeft).Column
If iLastCol >= 2 Then
For j = 2 To iLastCol
stroka = stroka & "[" & Cells(i, j) & "]"
Next
End If
Cells(i, 1) = stroka
Next
End Sub
DartoArem написал: если данные начинаются с H6:I10
Но Вы же в примере показали начало диапазона с ячейки А1. Как макрос должен понять, где начинается таблица? Может быть приемлем вариант с выделенным диапазоном?
См. вариант. Выделить диапазон и выполнить этот макрос. Проверку на количество выделенных ячеек не делал.
Код
Sub Macro1()
Dim LastRow As Long, Adr As String, Arr(), i As Long, j As Long
Arr = Selection.Value
Adr = Selection.Cells(1, 1).Address
For i = 1 To UBound(Arr)
For j = 2 To UBound(Arr, 2)
If Arr(i, j) <> "" Then
Arr(i, 1) = Arr(i, 1) & " [" & Arr(i, j) & "] "
End If
Next
Next
Range(Adr).Resize(UBound(Arr), 1).Value = Arr
End Sub