Note: The other languages of the website are Google-translated. Back to English

Come concatenare le colonne delle celle e mantenere il colore del testo in Excel?

Come tutti sappiamo, durante la concatenazione o la combinazione di colonne di celle in una colonna, la formattazione della cella (come il colore del carattere del testo, la formattazione del numero, ecc.) Andrà persa. In questo articolo, introdurrò alcuni trucchi per combinare le colonne delle celle in una e mantenere il colore del testo il più facilmente possibile in Excel.

Concatena le colonne delle celle e mantieni il colore del carattere del testo con il codice VBA


Concatena le colonne delle celle e mantieni il colore del carattere del testo con il codice VBA

Per completare questa attività in Excel, il seguente codice VBA potrebbe farti un favore, per favore fai come segue:

1. Tieni premuto il ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla il codice seguente nel file Finestra del modulo.

Codice VBA: concatena le colonne delle celle e mantieni il colore del testo:

Sub MergeFormatCell()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xRgEachRow As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim I As Integer
    Dim xRgLen As Integer
    Dim xSRgRows As Integer
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Please select cell columns to concatenate:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSRgRows = xSRg.Rows.Count
    Set xDRg = Application.InputBox("Please select cells to output the result:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRgRows
        xRgLen = 1
        With xDRg.Offset(I - 1)
            .Value = vbNullString
            .ClearFormats
            Set xRgEachRow = xSRg(1).Offset(I - 1).Resize(1, xSRg.Columns.Count)
            For Each xRgEach In xRgEachRow
                .Value = .Value & Trim(xRgEach.Value) & " "
            Next
            For Each xRgEach In xRgEachRow
                xRgVal = xRgEach.Value
                With .Characters(xRgLen, Len(Trim(xRgVal))).Font
                .Name = xRgEach.Font.Name
                .FontStyle = xRgEach.Font.FontStyle
                .Size = xRgEach.Font.Size
                .Strikethrough = xRgEach.Font.Strikethrough
                .Superscript = xRgEach.Font.Superscript
                .Subscript = xRgEach.Font.Subscript
                .OutlineFont = xRgEach.Font.OutlineFont
                .Shadow = xRgEach.Font.Shadow
                .Underline = xRgEach.Font.Underline
                .ColorIndex = xRgEach.Font.ColorIndex
                End With
                xRgLen = xRgLen + Len(Trim(xRgVal)) + 1
            Next
        End With
    Next I
End Sub

3. Quindi premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per ricordarti di selezionare l'intervallo di dati che desideri combinare con il colore del testo, vedi screenshot:

4. E poi clicca OK, viene visualizzata un'altra finestra di dialogo, selezionare le celle in cui si desidera visualizzare i risultati combinati, vedere screenshot:

5. Quindi fare clic OK pulsante, le colonne sono state concatenate senza perdere il colore del testo come mostrato nella seguente schermata:

Note:: Se i dati che dovevano essere combinati includono numeri, il codice macro non può funzionare correttamente.


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (9)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Questo codice funziona davvero bene. Ma come aggiungo spazio prima o dopo il testo?
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Questo metodo funziona bene, finché xRgLen non è superiore a 255.
Sembra che questo parametro sia un byte :-(
Come si può superare questa limitazione?
Questo commento è stato fatto dal moderatore sul sito
Fantastica la macro di concatenamento cadena de texto conservando il formato de origen. En mi caso no funcionaba con F5, pero en la pestaña macro, modificar y opciones me permite entrar el modo de ejecucion con CTRL+letra y funciona de maravilla. Molte grazie.
Questo commento è stato fatto dal moderatore sul sito
Habría manera de hacerlo con numeri?
Questo commento è stato fatto dal moderatore sul sito
Grazie per il codice.
Se il testo contiene "( )", ad esempio "tomate (tomates)". Non funziona altrettanto bene. C'è qualcosa da modificare per poter lavorare con "( )"?
Questo commento è stato fatto dal moderatore sul sito
Ciao Rah,
Come stai? Se il testo contiene "( )", non è necessario modificare il codice VBA. Si prega di vedere lo screenshot, il testo "pomodoro (pomodori)" può essere combinato con successo con altre colonne di celle in una colonna. Spero che possa aiutarti.
Cordiali saluti,
Mandy
Questo commento è stato fatto dal moderatore sul sito
grazie per il codice!
Può essere aggiornato automaticamente la colonna concatenata se vengono apportate modifiche?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Kathy,
Spiacenti, al momento non esiste un buon modo per farlo, è necessario eseguire nuovamente il codice dopo aver modificato il contenuto della cella. 😂
.
Questo commento è stato fatto dal moderatore sul sito
Va bene, grazie per la risposta
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL