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

Hoe celkolommen samen te voegen en de tekstkleur in Excel te behouden?

Zoals we allemaal weten, gaat bij het aaneenschakelen of combineren van celkolommen in één kolom de celopmaak (zoals tekstkleur, nummeropmaak, enz.) Verloren. In dit artikel zal ik enkele trucs introduceren om de celkolommen in één te combineren en de tekstkleur zo gemakkelijk mogelijk in Excel te behouden.

Voeg celkolommen samen en behoud de tekstkleur met VBA-code


Voeg celkolommen samen en behoud de tekstkleur met VBA-code


Om deze taak in Excel te voltooien, kan de volgende VBA-code u een plezier doen, doe dit als volgt:

1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: celkolommen samenvoegen en tekstkleur behouden:

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. Druk vervolgens op F5 sleutel om deze code uit te voeren, en er verschijnt een promptvenster om u eraan te herinneren het gegevensbereik te selecteren dat u met tekstkleur wilt combineren, zie screenshot:

4. En klik vervolgens op OK, er verschijnt een ander dialoogvenster, selecteer de cellen waarin u de gecombineerde resultaten wilt uitvoeren, zie screenshot:

5. Dan klikken OK knop, zijn de kolommen aaneengeschakeld zonder de tekstkleur te verliezen zoals in het volgende screenshot wordt getoond:

Opmerking:: Als de gegevens die moeten worden gecombineerd getallen bevatten, kan de macrocode niet correct werken.


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (6)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Deze code werkt echt goed. Maar hoe voeg ik ruimte voor of na de tekst toe?
Sheila
Deze opmerking is gemaakt door de moderator op de site
Hallo,
Deze methode werkt goed, totdat xRgLen hoger is dan 255.
Het lijkt erop dat deze parameter een byte is :-(
Hoe kan deze beperking worden doorbroken?
sirmasiang
Deze opmerking is gemaakt door de moderator op de site
Een fantastische macro van de concatenar cadena de texto conservando formato de origen. Als er geen functie is met F5, kan de macro worden gewijzigd, kan ik wijzigingen aanbrengen in de ejecucion-modus met CTRL+letra en de functie van maravilla. Muchas gracias.
Antoni
Deze opmerking is gemaakt door de moderator op de site
Heb je een manera de hacerlo met números?
fridlack
Deze opmerking is gemaakt door de moderator op de site
Bedankt voor de code.
Als de tekst "( )" heeft, bijvoorbeeld "tomate (tomates)". Het werkt niet zo goed. Is er iets aan te passen om met "( )" te werken?
yard
Deze opmerking is gemaakt door de moderator op de site
Hallo Ra,
Hoe is het met je? Als de tekst "( )" heeft, hoeven we de VBA-code niet te wijzigen. Zie de screenshot, de tekst "tomaat (tomaten)" kan met succes worden gecombineerd met andere celkolommen in één kolom. Hoop dat het je kan helpen.
Hoogachtend,
Mandy
MandyZhou
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties