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

Wie verkette ich Zellspalten und behalte die Textfarbe in Excel?

Wie wir alle wissen, geht beim Verketten oder Kombinieren von Zellenspalten zu einer Spalte die Zellenformatierung (z. B. Textschriftfarbe, Zahlenformatierung usw.) verloren. In diesem Artikel werde ich einige Tricks vorstellen, um die Zellenspalten zu einer zu kombinieren und die Textfarbe in Excel so einfach wie möglich zu halten.

Verketten Sie Zellenspalten und behalten Sie die Textschriftfarbe mit VBA-Code bei


Verketten Sie Zellenspalten und behalten Sie die Textschriftfarbe mit VBA-Code bei

Um diese Aufgabe in Excel abzuschließen, kann Ihnen der folgende VBA-Code einen Gefallen tun. Gehen Sie wie folgt vor:

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modulfenster.

VBA-Code: Zellspalten verketten und Textfarbe beibehalten:

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. Dann drücken F5 Wenn Sie die Taste drücken, um diesen Code auszuführen, wird ein Eingabeaufforderungsfeld angezeigt, das Sie daran erinnert, den Datenbereich auszuwählen, den Sie mit der Textfarbe kombinieren möchten. Siehe Screenshot:

4. Und dann klick OKwird ein weiteres Dialogfeld angezeigt. Wählen Sie die Zellen aus, in denen Sie die kombinierten Ergebnisse ausgeben möchten. Siehe Screenshot:

5. Dann klick OK Schaltfläche, wurden die Spalten verkettet, ohne die Textfarbe zu verlieren, wie im folgenden Screenshot gezeigt:

Hinweis: Wenn die Daten, die kombiniert werden mussten, Zahlen enthalten, kann der Makrocode nicht richtig funktionieren.


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (9)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieser Code funktioniert wirklich gut. Aber wie füge ich Leerzeichen vor oder nach dem Text hinzu?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Diese Methode funktioniert gut, bis xRgLen größer als 255 ist.
Es sieht so aus, als ob dieser Parameter ein Byte ist :-(
Wie kann diese Einschränkung überwunden werden?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Fantástica la macro de concatenar cadena de texto conservando formato de origen. Wenn Sie keine Funktion mit F5 haben, können Sie das Makro verwenden, ich erlaube Ihnen, den Auswurfmodus mit STRG+letra und Maravilla-Funktionen einzugeben. Vielen Dank.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Habría manera de hacerlo con números?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank für den Code.
Wenn der Text "( )" enthält, zum Beispiel "Tomate (Tomaten)". Es funktioniert auch nicht. Gibt es etwas zu ändern, um mit "( ) " zu arbeiten?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Ra,
Wie geht es Ihnen? Wenn der Text "( )" enthält, müssen wir den VBA-Code nicht ändern. Siehe Screenshot, der Text "Tomate (Tomaten)" kann erfolgreich mit anderen Zellspalten zu einer Spalte kombiniert werden. Hoffe es kann dir helfen.
Mit freundlichen Grüßen
Mandy
Dieser Kommentar wurde vom Moderator auf der Website minimiert
danke für den code!
Kann die verkettete Spalte automatisch aktualisiert werden, wenn Änderungen vorgenommen werden?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Kathi,
Leider gibt es derzeit keine gute Möglichkeit, dies zu tun. Sie müssen den Code erneut ausführen, nachdem Sie den Zelleninhalt geändert haben. 😂
Vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Okay, danke für deine Antwort
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL