Порада. Інші мови - перекладена Google. Ви можете відвідати English версія цього посилання.
увійти
x
or
x
x
Реєстрація
x

or

Як витягнути текст на основі кольору шрифту з клітинки в Excel?

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

doc-extract-text-color-1

Витяг тексту на основі кольору шрифту з кожної клітинки


Стрілка синього правого міхура Витяг тексту на основі кольору шрифту з кожної клітинки


У програмі Excel ви можете використовувати визначену функцію, щоб витягнути текст на основі кольору шрифту.

1. прес Alt + F11 ключі разом, щоб відкрити вікно Microsoft Visual Basic for Applications.

2. клацання вставка > Модулі і скопіюйте наступний код VBA до спливаючого вікна.

VBA: Витяг тексту на основі кольору шрифту

Function GetColorText(pRange As Range) As String
	'Updateby20141105
	Dim xOut As String
	Dim xValue As String
	Dim i As Long
	xValue = pRange.Text

	For i = 1 To VBA.Len(xValue)

		If pRange.Characters(i, 1).Font.Color = vbRed Then
			xOut = xOut & VBA.Mid(xValue, i, 1)
		End If

	Next

	GetColorText = xOut
End Function

3 Потім збережіть і закрийте діалогове вікно та виберіть порожню клітинку біля списку даних, введіть цю формулу = GetColorText (A1) (A1 позначає комірку, з якої ви хочете витягнути текст), натисніть вводити щоб отримати необхідний текст, а потім перетягніть ручку автозаповнення, щоб заповнити формулу до потрібного діапазону.

Тепер ви можете побачити весь червоний текст.

doc-extract-text-color-2

Чайові: У вищезгаданому коді VBA, якщо вам потрібно витягнути чорний текст з комірок, ви можете змінити назву кольору Колір = vbRed до Колір = vbBlack.


Відносні статті:



Рекомендовані інструменти для роботи з продуктивністю

Вкладка Office

золота зірка1 Принесіть зручні вкладки для Excel та іншого програмного забезпечення Office, як і Chrome, Firefox та нового Internet Explorer.

Kutools для Excel

золота зірка1 Дивовижний! Збільште свою продуктивність за 5 хв. Не потрібно спеціальних навичок, заощаджуйте дві години щодня!

золота зірка1 Нові можливості 300 для Excel, зробити Excel набагато простішим та потужним:

  • Об'єднати клітинки / рядки / стовпці без втрати даних.
  • Об'єднати та об'єднати декілька аркушів і книг.
  • Порівняйте діапазони, копіюйте декілька діапазонів, перетворюйте текст на дату, одиницю та валюту.
  • Розрахувати за кольорами, Інтерв'ю підказок, Розширений сортування та Супер фільтр
  • Більше Вибрати / Вставити / Видалити / Текст / Формат / Посилання / Коментарі / Робочі книги / Робочі аркуші Інструменти ...

Знімок екрану Kutools для Excel

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.
    prudwi · 3 months ago
    The code works well if the red strings are continuous. In case they are separated in the source cell, they are glued to each other in output cell. I mean there is no space in the output if the red text strings are away from each other. Can you please provide a solution for this?
  • To post as a guest, your comment is unpublished.
    Kazam Raza · 3 months ago
    thanks, very interesting code.
  • To post as a guest, your comment is unpublished.
    Roberto · 4 months ago
    dimenticavo io ho Excel 2010
  • To post as a guest, your comment is unpublished.
    Roberto · 4 months ago
    Buonasera, grazie mille un'ottima funzione. Però ho un problema, quando val nel foglio ed inserisco es. = GetColorText (A1) mi restituisce il valore giusto però come riavvio il file mi da errore #VALORE!, se poi clicco 2 volte sopra mi da il valore corretto e così via. che posso fare?
  • To post as a guest, your comment is unpublished.
    JM · 1 years ago
    Hey, Thanks for the Tip. Works great with Red and Black.
    What if I want to parse "Purple"? changing it vbPurple does not work.
    Thanks