Tipp: Andere Sprachen sind Google-Übersetzungen. Sie können die English Version dieses Links.
Einloggen
x
or
x
x
Registrieren
x

or

Wie verketten Sie Zellenspalten und behalten Sie Textfarbe in Excel?

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

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


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


Um diesen Task in Excel zu beenden, kann der folgende VBA-Code Ihnen einen Gefallen tun:

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

2. Klicken Sie Einsatz > Modul, und fügen Sie den folgenden Code in die Modulfenster.

VBA-Code: Verketten Sie Zellenspalten und behalten Sie die Textfarbe:

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 Schlüssel, um diesen Code auszuführen, und eine Eingabeaufforderung wird ausgegeben, um Sie daran zu erinnern, den Datenbereich auszuwählen, den Sie mit Textfarbe kombinieren möchten, siehe Screenshot:

4. Und dann klick OKerscheint ein weiteres Dialogfeld, bitte 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:

Text: Wenn die Daten, die kombiniert werden müssen, Zahlen enthalten, kann der Makrocode nicht korrekt funktionieren.



Empfohlene Produktivitätswerkzeuge für Excel

Kutools for Excel hilft Ihnen, Ihre Arbeit immer im Voraus zu erledigen und sich von der Masse abzuheben

  • Mehr als 300 leistungsstarke erweiterte Funktionen, die für 1500-Arbeitsszenarien entwickelt wurden und die Produktivität um 70% steigern, geben Ihnen mehr Zeit, sich um Ihre Familie zu kümmern und das Leben zu genießen.
  • Sie müssen keine Formeln und VBA-Codes mehr auswendig lernen. Geben Sie Ihrem Gehirn eine Pause.
  • Werden Sie ein Excel-Experte in 3 Minuten. Komplizierte und wiederholte Operationen können in Sekunden durchgeführt werden.
  • Reduzieren Sie jeden Tag Tausende von Tastatur- und Mausoperationen und verabschieden Sie sich jetzt von Berufskrankheiten.
  • 110,000 hochwirksame Mitarbeiter und 300 + weltweit renommierte Unternehmen.
  • Kostenlose Testversion für 60-Tage mit allen Funktionen. Geld-zurück-Garantie für 60-Tage. 2 Jahre kostenloses Upgrade und Support.

Bringt das Browsen und Bearbeiten von Registerkarten in Microsoft Office, das weitaus leistungsstärker ist als die Registerkarten des Browsers

  • Die Registerkarte "Office" wurde für Word, Excel, PowerPoint und andere Office-Anwendungen entwickelt: 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 täglich Hunderte von Mausklicks für Sie!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    fridlack · 4 months ago
    Habría manera de hacerlo con números?
  • To post as a guest, your comment is unpublished.
    Antoni · 8 months ago
    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 permite entrar el modo de ejecucion con CTRL+letra y funciona de maravilla. Muchas gracias.
  • To post as a guest, your comment is unpublished.
    sirmasiang · 8 months ago
    Hello,
    This methods works well, until xRgLen is higher than 255.
    It looks this parameter is a byte :-(
    How can this limitation been overtaken ?
  • To post as a guest, your comment is unpublished.
    Sheila · 1 years ago
    This code works really well. But, how do I add space before or after the text?