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

Hvordan sammenkædes cellekolonner og holder tekstfarve i Excel?

Som vi alle vidste, vil celleformatering (såsom tekstfarve, antal formatering osv.) Gå tabt, når du sammenkæder eller kombinerer cellekolonner i en kolonne. Denne artikel vil jeg introducere nogle tricks til at kombinere cellekolonnerne i en og holde tekstfarven så let som muligt i Excel.

Sammenkæd cellekolonner, og bevar skrifttypefarven med VBA-kode


Sammenkæd cellekolonner, og bevar skrifttypefarven med VBA-kode

For at afslutte denne opgave i Excel kan følgende VBA-kode muligvis gøre dig en tjeneste, gør venligst som denne:

1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: sammenkæd cellekolonner og hold tekstfarve:

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. Tryk derefter på F5 nøgle til at køre denne kode, og der vises en promptboks for at minde dig om at vælge det dataområde, du vil kombinere med tekstfarve, se skærmbillede:

4. Og klik derefter på OK, en anden dialogboks vises, skal du vælge de celler, hvor du vil sende de kombinerede resultater, se skærmbillede:

5. Klik derefter på OK -knappen, kolonnerne er sammenkædet uden at miste tekstfarven, som vist på følgende skærmbillede:

Bemærk: Hvis de data, der skulle kombineres, inkluderer tal, kan makrokoden ikke fungere korrekt.


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (9)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Denne kode fungerer rigtig godt. Men hvordan tilføjer jeg mellemrum før eller efter teksten?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,
Denne metode fungerer godt, indtil xRgLen er højere end 255.
Det ser ud til, at denne parameter er en byte :-(
Hvordan kan denne begrænsning blive overhalet?
Denne kommentar blev minimeret af moderatoren på webstedet
Fantastisk makro-konkatenær kadena af bevarende tekstformat. En mi caso no funcionaba con F5, pero en la pestaña macro, modificar y optiones me permite entrar el modo de ejecucion con CTRL+letra y funciona de maravilla. Mange tak.
Denne kommentar blev minimeret af moderatoren på webstedet
Habría manera de hacerlo med numre?
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for koden.
Hvis teksten har "( )", for eksempel "tomate (tomates)". Det virker ikke så godt. Er der noget, der skal ændres for at kunne arbejde med "( ) "?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Rah,
Hvordan har du det? Hvis teksten har "( )", behøver vi ikke at ændre VBA-koden. Se venligst skærmbilledet, teksten "tomat (tomater)" kan med succes kombineres med andre cellekolonner i én kolonne. Håber det kan hjælpe dig.
Med venlig hilsen,
Mandy
Denne kommentar blev minimeret af moderatoren på webstedet
tak for koden!
Kan det automatisk opdatere den sammenkædede kolonne, hvis der foretages ændringer?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Kathy,
Beklager, på nuværende tidspunkt er der ingen god måde at gøre det på. Du skal køre koden igen efter at have ændret celleindholdet. 😂
Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Okay, tak for dit svar
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL