Как насчет того, чтобы пройти по всем строкам и копировать их по одному ..
Sub CombineRows()
Dim i As Integer, N As Integer, M As Integer
Dim row_values() As Variant
Dim r_read As Range, r_write As Range
'Set to top-left of input values
Set r_read = Range("A1")
'Set to top-left of output row
Set r_write = Range("A21")
'Count the rows to read
N = Range(r_read, r_read.End(xlDown)).Rows.Count
'Count the columns to read
M = Range(r_read, r_read.End(xlToRight)).Columns.Count
For i = 1 To N
'Read an entire row into an array
row_values = r_read.Offset(i - 1, 0).Resize(1, M).Value
'Write the row from the array
r_write.Offset(0, (i - 1) * M).Resize(1, M).Value = row_values
Next i
End Sub
Вставьте это где-нибудь в лист, нажмите Alt-F8
или выберите Инструменты / Макрос / Макросы и запустить его.Убедитесь, что он указывает на правильные места в вашем листе данных.