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

Jak połączyć kolumny komórek i zachować kolor tekstu w programie Excel?

Jak wszyscy wiemy, podczas konkatenacji lub łączenia kolumn komórek w jedną kolumnę, formatowanie komórki (takie jak kolor czcionki tekstu, formatowanie liczb itp.) Zostanie utracone. W tym artykule przedstawię kilka sztuczek, aby połączyć kolumny komórek w jedną i jak najłatwiej zachować kolor tekstu w programie Excel.

Połącz kolumny komórek i zachowaj kolor czcionki tekstu za pomocą kodu VBA


Połącz kolumny komórek i zachowaj kolor czcionki tekstu za pomocą kodu VBA

Aby zakończyć to zadanie w programie Excel, następujący kod VBA może wyświadczyć ci przysługę, wykonaj następujące czynności:

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: połącz kolumny komórek i zachowaj kolor tekstu:

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. Następnie naciśnij F5 klucz do uruchomienia tego kodu i pojawia się okienko zachęty przypominające o wybraniu zakresu danych, który chcesz połączyć z kolorem tekstu, patrz zrzut ekranu:

4. A następnie kliknij OKpojawi się kolejne okno dialogowe, wybierz komórki, w których chcesz wyprowadzić połączone wyniki, zobacz zrzut ekranu:

5. Następnie kliknij OK przycisk, kolumny zostały połączone bez utraty koloru tekstu, jak pokazano na poniższym zrzucie ekranu:

Uwagi: Jeśli dane, które trzeba było połączyć, zawierają liczby, kod makra nie może działać poprawnie.


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (9)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Ten kod działa naprawdę dobrze. Ale jak dodać spację przed lub po tekście?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć,
Ta metoda działa dobrze, dopóki xRgLen nie przekroczy 255.
Wygląda na to, że ten parametr jest bajtem :-(
Jak można przezwyciężyć to ograniczenie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Fantastica 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 ejecuciion con CTRL+letra y funciona de maravilla. Bardzo dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
Habría manera de hacerlo con números?
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki za kod.
Jeśli tekst zawiera „( )”, na przykład „tomate (tomate)”. To nie działa tak dobrze. Czy jest coś do zmodyfikowania, aby móc pracować z „( )”?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Rah,
Jak się masz? Jeśli tekst zawiera „( )”, nie musimy zmieniać kodu VBA. Zobacz zrzut ekranu, tekst „pomidor (pomidory)” można z powodzeniem połączyć z innymi kolumnami komórek w jedną kolumnę. Mam nadzieję, że może ci to pomóc.
Pozdrawiamy,
Mandy
Ten komentarz został zminimalizowany przez moderatora na stronie
dzięki za kod!
Czy można automatycznie aktualizować kolumnę konkatenacji, jeśli wprowadzisz jakąkolwiek zmianę?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Kathy,
Przepraszamy, obecnie nie ma na to dobrego sposobu, po zmianie zawartości komórki trzeba uruchomić kod ponownie.
Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
W porządku, dziękuję za odpowiedź
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL