Prueba la siguiente macro, no muy elegante en el que no se hace ninguna comprobación de errores, etc, pero las obras. Asigne la macro a un botón, haga clic en una celda, haga clic en el botón de macro, resalte el rango deseado (origen) para fusionar con el mouse (se rellenará automáticamente en el cuadro de diálogo de entrada), haga clic en Aceptar, resalte el destino celda (completará automáticamente el cuadro de entrada en el cuadro de diálogo siguiente) haga clic en Aceptar, todas las celdas se fusionarán con un único carácter de espacio en la celda de destino, que puede estar en el rango de fuente original). Depende de ti para eliminar las celdas superfluas manualmente. Trabaja con filas y columnas pero no con bloques.
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