Vba: come unire le celle con gli stessi valori


È possibile utilizzare la seguente sintassi in VBA per unire celle con gli stessi valori in un intervallo particolare:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

Questa particolare macro unisce le celle con gli stessi valori nell’intervallo A1:C13 .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: unisci celle con gli stessi valori in VBA

Supponiamo di avere il seguente set di dati in Excel che contiene informazioni sui punti segnati da vari giocatori di basket:

Supponiamo di voler unire celle con gli stessi valori in righe consecutive.

Per fare ciò possiamo creare la seguente macro:

 Sub MergeSameCells()
    
    'turn off display alerts while merging
    Application.DisplayAlerts = False
    
    'specify range of cells for merging
    Set myRange = Range(" A1:C13 ")

'merge all same cells in range
MergeSame:
    For Each cell In myRange
        If cell.Value = cell.Offset(1, 0).Value And Not IsEmpty(cell) Then
            Range(cell, cell.Offset(1, 0)).Merge
            cell.VerticalAlignment = xlCenter
            GoTo MergeSame
        End If
    Next
    
    'turn display alerts back on
    Application.DisplayAlerts = True

End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

VBA unisce le celle con gli stessi valori

Tieni presente che ciascuna cella contenente lo stesso nome della conferenza e lo stesso nome del team è stata unita.

Tieni presente che abbiamo utilizzato l’istruzione cell.VerticalAlignment = xlCenter per specificare che il testo deve essere centrato verticalmente nelle celle unite.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come contare il numero di colonne utilizzate
VBA: come modificare l’altezza della riga
VBA: come modificare la larghezza della colonna

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *