Wypróbuj następujące makro, nie bardzo elegancki w tym, że nie wykonuje sprawdzanie błędów itp ale prace. Przypisz makro do przycisku, kliknij komórkę, kliknij przycisk makra, podświetl odpowiedni zakres (źródłowy), aby scalić za pomocą myszy (automatycznie wypełnisz zakres w polu wprowadzania w oknie dialogowym), kliknij przycisk ok, zaznacz cel komórka (automatycznie wypełni pole wejściowe w następnym oknie dialogowym) kliknij OK, wszystkie komórki zostaną połączone z pojedynczym znakiem spacji w komórce docelowej, która może znajdować się w oryginalnym zakresie źródłowym). Aż do usunięcia niepotrzebnych komórek ręcznie. Roboty z wierszami i kolumnami, ale nie z blokami.
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