Попробуйте следующий макрос, не очень элегантный в том смысле, что он не выполняет проверку ошибок и т. Д., Но работает. Назначьте макрос кнопке, щелкните ячейку, нажмите кнопку макроса, выделите желаемый (исходный) диапазон для объединения с помощью мыши (будет автоматически заполнять диапазон в поле ввода в диалоговом окне), нажмите кнопку «ОК», выделите место назначения ячейка (будет автоматически заполнять поле ввода в следующем диалоговом окне) нажмите кнопку ОК, все ячейки будут объединены с одним пробелом в ячейку назначения, которая может находиться в исходном исходном диапазоне). До вас, чтобы удалить лишние клетки вручную. Работает как со строками, так и со столбцами, но не с блоками.
Sub JoinCells()
Set xJoinRange = Application.InputBox(prompt:="Highlight source cells to merge", Type:=8)
xSource = 0
xSource = xJoinRange.Rows.Count
xType = "rows"
If xSource = 1 Then
xSource = xJoinRange.Columns.Count
xType = "columns"
End If
Set xDestination = Application.InputBox(prompt:="Highlight destination cell", Type:=8)
If xType = "rows" Then
temp = xJoinRange.Rows(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Rows(i).Value
Next i
Else
temp = xJoinRange.Columns(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Columns(i).Value
Next i
End If
xDestination.Value = temp
End Sub