Provare la seguente macro, non molto elegante, nel senso che non fa alcun controllo degli errori, ecc, ma opere. Assegnare la macro a un pulsante, fare clic in una cella, fare clic sul pulsante macro, evidenziare l'intervallo desiderato (sorgente) da unire usando il mouse (si riempirà automaticamente nell'intervallo nella casella di input nella finestra di dialogo), fare clic su OK, evidenziare la destinazione cella (riempirà automaticamente la casella di input nella finestra di dialogo successiva) fare clic su OK, tutte le celle verranno unite con un singolo carattere di spazio nella cella di destinazione, che può essere nell'intervallo di origine originale). Fino a te per eliminare manualmente le celle superflue. Funziona con righe e colonne ma non con blocchi.
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
fonte
2011-08-23 15:15:56