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

Jak zřetězit sloupce buněk a zachovat barvu textu v aplikaci Excel?

Jak všichni víme, při zřetězení nebo kombinování sloupců buněk do jednoho sloupce dojde ke ztrátě formátování buňky (jako je barva písma textu, formátování čísel atd.). V tomto článku představím několik triků, jak kombinovat sloupce buněk do jednoho a co nejsnadněji zachovat barvu textu v aplikaci Excel.

Zřetězte sloupce buněk a udržujte barvu písma textu pomocí kódu VBA


Zřetězte sloupce buněk a udržujte barvu písma textu pomocí kódu VBA

K dokončení tohoto úkolu v aplikaci Excel vám může pomoci následující kód VBA, udělejte to takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: zřetězení sloupců buněk a zachování barvy textu:

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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a zobrazí se okno s výzvou, které vám připomene, abyste vybrali rozsah dat, který chcete kombinovat s barvou textu, viz screenshot:

4. A pak klikněte na tlačítko OK, objeví se další dialogové okno, vyberte buňky, do kterých chcete vygenerovat kombinované výsledky, viz screenshot:

5. Pak klikněte na tlačítko OK tlačítko, sloupce byly zřetězeny, aniž by došlo ke ztrátě barvy textu, jak ukazuje následující snímek obrazovky:

Poznámka: Pokud data, která je třeba kombinovat, obsahují čísla, pak kód makra nemůže fungovat správně.


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (9)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Tento kód funguje opravdu dobře. Ale jak přidám mezeru před nebo za text?
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Tato metoda funguje dobře, dokud není xRgLen vyšší než 255.
Zdá se, že tento parametr je bajt :-(
Jak lze toto omezení překonat?
Tento komentář byl moderátorem webu minimalizován
Fantástika makro zřetězeného textu konzervovaného formátu původního. Nefunguje mi žádná funkce s F5, ale makro, modifikace a možnosti mi umožňují vstup do režimu ejecucion s CTRL+letra a funkce maravilla. Muchas gracias.
Tento komentář byl moderátorem webu minimalizován
Habria manera de hacerlo con numeros?
Tento komentář byl moderátorem webu minimalizován
Díky za kód.
Pokud má text „( )“, například „rajče (rajčata)“. Stejně to nefunguje. Je třeba něco upravit, aby bylo možné pracovat s „( ) “?
Tento komentář byl moderátorem webu minimalizován
Ahoj Rah,
Jak se máš? Pokud má text "( )", nemusíme měnit kód VBA. Podívejte se prosím na snímek obrazovky, text "rajče (rajčata)" lze úspěšně spojit s ostatními sloupci buněk do jednoho sloupce. Doufám, že vám to pomůže.
S pozdravem,
Mandy
Tento komentář byl moderátorem webu minimalizován
díky za kód!
Může být automaticky aktualizován sloupec zřetězení, pokud dojde k nějaké změně?
Tento komentář byl moderátorem webu minimalizován
Ahoj, Kathy,
Je nám líto, v současné době na to neexistuje žádný dobrý způsob, po změně obsahu buňky musíte znovu spustit kód. 😂
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Dobře, děkuji za odpověď
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL