Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как объединить столбцы ячеек и сохранить цвет текста в Excel?

Как мы все знаем, конкатенация или объединение столбцов ячеек в один столбец, форматирование ячейки (например, цвет шрифта текста, форматирование номера и т. Д.) Будет потерян. В этой статье я расскажу о некоторых трюках, чтобы объединить столбцы ячеек в один и сохранить текст как можно проще в Excel.

Конкатенация столбцов ячеек и сохранение цвета шрифта текста с кодом VBA


Конкатенация столбцов ячеек и сохранение цвета шрифта текста с кодом VBA


Чтобы завершить эту задачу в Excel, следующий код VBA может оказать вам услугу, пожалуйста, сделайте следующее:

1, Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окна.

2. Щелчок Вставить > модуль, и вставьте следующий код в Окно модуля.

Код VBA: объединить столбцы ячеек и сохранить цвет текста:

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, Затем нажмите F5 ключ для запуска этого кода, и появится окно подсказки, чтобы напомнить вам выбрать диапазон данных, который вы хотите комбинировать с цветом текста, см. снимок экрана:

4, Затем нажмите OK, появится другое диалоговое окно, выберите ячейки, где вы хотите вывести комбинированные результаты, см. снимок экрана:

5, Затем нажмите OK , столбцы были объединены без потери цвета текста, как показано на следующем скриншоте:

Внимание: Если данные, которые необходимо объединить, включают числа, то макрокоманда не может работать корректно.



Рекомендуемые инструменты для повышения производительности в Excel

Kutools для Excel помогает всегда завершать работу раньше времени и выделяться из толпы

  • Больше, чем мощные расширенные функции 300, разработанные для рабочих сценариев 1500, повышающие производительность на 70%, дают вам больше времени, чтобы заботиться о семье и радоваться жизни.
  • Больше не нужно запоминать формулы и коды VBA, дайте вашему мозгу отдохнуть.
  • Станьте экспертом по Excel за минуты 3. Сложные и повторяющиеся операции можно выполнить за считанные секунды,
  • Ежедневно сокращайте тысячи операций с клавиатурой и мышью, попрощайтесь с профессиональными заболеваниями сейчас.
  • Высокоэффективные люди 110,000 и выбор всемирно известных компаний 300 +.
  • 60-Day полнофункциональная бесплатная пробная версия. 60-день гарантии возврата денег. 2 лет бесплатного обновления и поддержки.

Обеспечивает просмотр и редактирование с помощью вкладок в Microsoft Office, гораздо более мощный, чем вкладки браузера

  • Вкладка Office предназначена для Word, Excel, PowerPoint и других приложений Office: Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
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?