Come unire le celle in excel utilizzando il codice vba
In VBA esiste un metodo “MERGE” che puoi utilizzare per unire un intervallo di celle o anche più intervalli in uno solo. Questo metodo ha un argomento “Across” che è facoltativo. Se specifichi TRUE, unirà ogni riga dell’intervallo separatamente e se specifichi FALSE, unirà l’intero intervallo in uno solo.
Passaggi per utilizzare VBA per unire le celle:
- Innanzitutto, devi definire l’intervallo di celle che desideri unire.
- Successivamente, digita un punto (.) per ottenere l’elenco di proprietà e metodi e seleziona “Unisci” da quell’elenco oppure puoi digitarlo direttamente.
- Successivamente, è necessario impostare l’argomento “Across” su TRUE o FALSE.
- Alla fine, esegui questo codice per unire l’intervallo.
Ecco il codice.
Range("A1:A2").Merge False
E se vuoi unire le righe dell’intero intervallo, puoi utilizzare TRUE per l’argomento across.
Selection.Merge Across:=True
Nel codice sopra hai selezionato come intervallo, metodo di unione e across come true. E ha unito tutte le righe nell’intervallo selezionato.
Ora supponiamo che tu voglia unire l’intervallo di celle da un altro foglio di lavoro, non è necessario abilitarlo prima. Puoi semplicemente fare prima riferimento al foglio di calcolo e quindi utilizzare i metodi di unione con il rinnegato che desideri unire.
Worksheets("Sheet1").Range("A1:A2").Merge
Allo stesso modo, puoi anche fare riferimento a una cartella di lavoro specificando il nome della cartella di lavoro.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
Unisci un intervallo e allinea il contenuto della cella
Ora quando unisci due o più celle, devi allineare il contenuto presente nella cella. Guarda l’istantanea qui sotto in cui hai unito le celle A1 e A2 e il valore nelle celle è allineato in basso. Per risolvere questo problema, puoi utilizzare la proprietà di allineamento e allineare il contenuto della cella al centro e al centro in modo che sia facile da leggere.
With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With
Combina il testo e poi unisci
Parliamo di uno scenario di vita reale. Hai del testo in un intervallo di celle e devi unire quelle celle, ma non vuoi perdere il contenuto che hai. Bene, puoi scrivere un ciclo di codice sull’intero intervallo utilizzando ciascuno e combinare il testo e quindi aggiungerlo all’intervallo unito alla fine.
- Nella prima parte, hai le variabili da utilizzare per memorizzare i valori dell’intervallo e impostarli.
- Nella seconda parte hai un LOOP per combinare i valori di ciascuna cella per creare con quella una nuova stringa.
- Nella terza parte, unisci l’intervallo, aggiungi la stringa combinata, applica il ritorno a capo automatico e allinea il contenuto della cella.
Ecco il codice completo.
Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub