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

Как извлечь текст на основе цвета шрифта из ячейки в Excel?

Если у вас есть список данных с некоторым красным текстом в каждой ячейке в Excel, как показано на скриншоте ниже, и знаете ли вы, как извлечь только красный текст? Теперь я представлю быстрый способ решить головоломку, которая извлекает текст на основе цвета шрифта из ячейки в Excel.

документ-экстракт-текст-цвет-1

Извлечь текст на основе цвета шрифта из каждой ячейки

Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу ...
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
  • Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
  • Разделить инструменты: Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
  • Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий ...
  • Более 300 мощных функций; Работает с Office 2007-2021 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

стрелка синий правый пузырь Извлечь текст на основе цвета шрифта из каждой ячейки

В Excel вы можете использовать только определенную функцию для извлечения текста на основе цвета шрифта.

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

2. Нажмите Вставить > Модули и скопируйте следующий код VBA в появившееся окно.

VBA: извлекать текст на основе цвета шрифта

Function GetColorText(pRange As Range) As String
'UpdatebyExtendoffice20220621
Dim xOut As String
Dim xValue As String
Dim i As Long
Dim TextColor
TextColor = RGB(255, 0, 0) 'colorindex RGB
xValue = pRange.Text
For i = 1 To VBA.Len(xValue)
  If pRange.Characters(i, 1).Font.Color = TextColor Then
  xOut = xOut & VBA.Mid(xValue, i, 1)
  End If
Next
GetColorText = xOut
End Function

3. Затем сохраните и закройте диалоговое окно, выберите пустую ячейку рядом со списком данных, введите эту формулу. = GetColorText (A1) (A1 указывает ячейку, из которой вы хотите извлечь текст), нажмите Enter , чтобы получить нужный текст, затем перетащите дескриптор автозаполнения, чтобы заполнить формулу нужным диапазоном.

Теперь вы можете видеть, что весь красный текст извлечен.

документ-экстракт-текст-цвет-2

Функции: В приведенном выше коде VBA вы можете изменить цвет rgb в этом скрипте TextColor = RGB(255, 0, 0) на другие, чтобы удовлетворить ваши потребности.


Относительные статьи:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (14)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, когда я пытался использовать vbBlue, это не сработало. Помогите, пожалуйста? Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Придайте цвет шрифта ext синему цвету.
Потому что есть много типов синего цвета «светло-голубой, небесно-голубой, темно-синий».
vba соответствует только цвету ext.??????
Этот комментарий был сведен к минимуму модератором на сайте
Код работает хорошо, если красные строки непрерывны. В случае, если они разделены в исходной ячейке, они склеиваются друг с другом в выходной ячейке. Я имею в виду, что в выводе нет места, если красные текстовые строки находятся далеко друг от друга. Можете ли вы предоставить решение для этого?
Этот комментарий был сведен к минимуму модератором на сайте
Эй, спасибо за совет. Отлично работает с красным и черным.
Что, если я хочу разобрать «Фиолетовый»? изменение его vbPurple не работает.
Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Buonasera, grazie mille un'ottima funzione. Però хо ип проблема, quando val нель Foglio ed inserisco es. = GetColorText (A1) ми восстановите свою ценность, прежде чем риаввио иль файл ми да ошибка #VALORE!, se poi clicco 2 volte sopra mi da il valore corretto e così через. che posso fare?
Этот комментарий был сведен к минимуму модератором на сайте
dimenticavo io ho Excel 2010
Этот комментарий был сведен к минимуму модератором на сайте
спасибо, очень интересный код.
Этот комментарий был сведен к минимуму модератором на сайте
Код работает хорошо, если красные строки непрерывны. В случае, если они разделены в исходной ячейке, они склеиваются друг с другом в выходной ячейке. Я имею в виду, что в выводе нет места, если красные текстовые строки находятся далеко друг от друга. Можете ли вы предоставить решение для этого?
Этот комментарий был сведен к минимуму модератором на сайте
Попробуйте, это должно сработать
Функция GetColorText (pRange As Range) как строка
'Обновлено для получения нескольких
Dim xOut как строка
Dim xValue как строка
Dim i As Long
Dim wasRed As Boolean
xValue = pRange.Text

Для i = 1 в VBA.Len(xValue)

Если pRange.Characters(i, 1).Font.Color = vbRed Тогда
xOut = xOut и VBA.Mid(xValue, i, 1)
былКрасный = Истина
ИначеЕсли былКрасный = Истина Тогда
былКрасный = Ложь
xВыход = xВыход & ";"
End If

Далее

ПолучитьЦветТекст = xВыход
End Function

Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо, это сработало отлично. Ты спаситель Тим :-) 
Этот комментарий был сведен к минимуму модератором на сайте
Мне все еще не удавалось извлечь синий текст (#1166BB). Есть ли способ использовать Hex: # 1166BB, чтобы получить цветной текст, который мне нужен?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Роберт Э. Перес, я обновил код VBA, теперь он поддерживает получение цветного текста с помощью кода rgb. Вы можете попробовать код еще раз.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть определенный текст в ячейке, разделенной запятой и имеющей цвет для каждого текста. При использовании функции разделителя я не могу сохранить цвет шрифта текста. Благодарю вас за помощь!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, jdhjjd, я не совсем понимаю твой вопрос. Вы хотите извлечь определенный текст из ячеек и сохранить цвет шрифта, как показано ниже?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color.png
или разделить ячейки и сохранить каждый цвет шрифта текста?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color-2.png
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL