Съвет: Други езици са преведени от Google. Можете да посетите English версия на тази връзка.
Влизане
x
or
x
x
Регистрирам
x

or

Как да извлечете текст въз основа на цвета на шрифта от една клетка в Excel?

Ако имате списък с данни с червен текст във всяка клетка в Excel, както е показано по-долу в екранната снимка и знаете ли как да извлечете само червения текст? Сега ще предложа един бърз начин за решаване на пъзела, който извлича текст въз основа на цвета на шрифта от клетката в Excel.

док-екстракт текст-цвят-1

Извличайте текст, базиран на цвета на шрифта от всяка клетка


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


В 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 показва клетката, от която искате да извлечете текст), натиснете Въведете за да получите необходимия текст, след това дръпнете дръжката за автоматично попълване, за да запълнете формулата до желания диапазон.

Сега можете да видите всички червени текст са извлечени.

док-екстракт текст-цвят-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