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

Hur sammanfoga cellkolumner och behålla textfärg i Excel?

När vi sammanfogar eller kombinerar cellkolumner i en kolumn kommer cellformateringen att gå förlorad (som vi alla känner till). Den här artikeln kommer jag att presentera några knep för att kombinera cellkolumnerna i en och hålla textfärgen så lätt som möjligt i Excel.

Sammankoppla cellkolumner och behåll textfärg med VBA-kod


Sammankoppla cellkolumner och behåll textfärg med VBA-kod

För att slutföra denna uppgift i Excel kan följande VBA-kod göra dig en tjänst, gör så här:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: sammanfoga cellkolumner och behålla textfärg:

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. Tryck sedan på F5 nyckel för att köra den här koden, och en snabbruta dyker upp för att påminna dig om att välja dataområdet du vill kombinera med textfärg, se skärmdump:

4. Och klicka sedan på OK, en annan dialogruta visas, välj de celler där du vill skicka de kombinerade resultaten, se skärmdump:

5. Klicka sedan OK -knappen har kolumnerna sammanfogats utan att förlora textfärgen enligt följande skärmdump:

Anmärkningar: Om data som behövde kombineras innehåller siffror, kan makrokoden inte fungera korrekt.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (9)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Den här koden fungerar riktigt bra. Men hur lägger jag till mellanslag före eller efter texten?
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå,
Denna metod fungerar bra tills xRgLen är högre än 255.
Det ser ut att denna parameter är en byte :-(
Hur kan denna begränsning överskridas?
Denna kommentar minimerades av moderatoren på webbplatsen
Fantástica la macro de concatenar cadena de texto conservando formato de origen. En mi caso no funcionaba con F5, pero en la pestaña macro, modificar y opciones me allowe entrar el modo de ejecucion con CTRL+letra y funciona de maravilla. Mycket tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Habría manera de hacerlo con nummeros?
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för koden.
Om texten har "( )", till exempel "tomate (tomates)". Det fungerar inte lika bra. Finns det något att ändra för att fungera med "( ) "?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Rah,
Hur mår du? Om texten har "( )", behöver vi inte ändra VBA-koden. Se skärmdumpen, texten "tomat (tomater)" kan framgångsrikt kombineras med andra cellkolumner i en kolumn. Hoppas det kan hjälpa dig.
Vänliga hälsningar,
Mandy
Denna kommentar minimerades av moderatoren på webbplatsen
tack för koden!
Kan det automatiskt uppdatera den sammanlänkade kolumnen om någon ändring görs?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Kathy,
Tyvärr, för närvarande finns det inget bra sätt att göra det, du måste köra koden igen efter att ha ändrat cellinnehållet. 😂
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Okej, tack för ditt svar
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL