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

Як об’єднати стовпці комірок і зберегти колір тексту в Excel?

Як ми всі знаємо, під час об'єднання або об'єднання стовпців комірок в один стовпець форматування комірки (наприклад, колір шрифту тексту, форматування чисел тощо) буде втрачено. У цій статті я представив кілька прийомів, як об’єднати стовпці комірок в одне і максимально легко зберегти колір тексту в Excel.

Об’єднайте стовпці комірок і збережіть колір шрифту тексту за допомогою коду VBA


Об’єднайте стовпці комірок і збережіть колір шрифту тексту за допомогою коду VBA

Щоб виконати це завдання в Excel, наступний код VBA може зробити вам послугу, будь ласка, зробіть так:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код 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 , стовпці були об'єднані без втрати кольору тексту, як показано на наступному знімку екрана:

примітки: Якщо дані, які потрібно було об'єднати, містять цифри, то макрокод не може працювати коректно.


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (9)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Цей код працює дуже добре. Але як додати пробіл перед або після тексту?
Цей коментар був мінімізований модератором на сайті
Здравствуйте,
Цей метод працює добре, поки xRgLen не буде вище 255.
Схоже, цей параметр є байтом :-(
Як можна подолати це обмеження?
Цей коментар був мінімізований модератором на сайті
Fantastica la macro de concatenar cadena de texto conservando formato de origen. У мене немає функції для F5, для макросів, змінених і опцій, дозволених увійти в режим викидання з CTRL+літером у функції маравілла. Дуже дякую.
Цей коментар був мінімізований модератором на сайті
Habría manera de hacerlo con números?
Цей коментар був мінімізований модератором на сайті
Дякуємо за код.
Якщо в тексті є "( )", наприклад "tomate (tomates)". Це також не працює. Чи потрібно щось змінити, щоб працювати з "( ) "?
Цей коментар був мінімізований модератором на сайті
Привіт Ра,
Як ти? Якщо текст містить «( )», нам не потрібно змінювати код VBA. Будь ласка, подивіться скріншот, текст «томат (помідори)» можна успішно об’єднати з іншими стовпцями комірки в один стовпець. Сподіваюся, це може вам допомогти.
З повагою,
Менді
Цей коментар був мінімізований модератором на сайті
дякую за код!
Чи можна автоматично оновлювати об’єднаний стовпець у разі внесення будь-яких змін?
Цей коментар був мінімізований модератором на сайті
Привіт, Кеті,
На жаль, наразі немає хорошого способу зробити це, вам потрібно запустити код знову після зміни вмісту клітинки. 😂
Дякую!
Цей коментар був мінімізований модератором на сайті
Добре, дякую за відповідь
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL