Cookies nám pomáhajú poskytovať naše služby. Využitím našich služieb, súhlasíte s našimi používanie cookies.
Tip: Iné jazyky sú Google preložené. Môžete navštíviť English verziu tohto odkazu.
Prihlásiť sa
x
or
x
x
Registrovať
x

or

Ako extrahovať text na základe farby písma z bunky v programe Excel?

Ak máte zoznam dát s červeným textom v každej bunke v programe Excel, ako je uvedené nižšie, viete, ako extrahovať len červený text? Teraz predstavím rýchly spôsob, ako vyriešiť hádanku, ktorá extrahuje text na základe farby písma z bunky v programe Excel.

doc-extract-text-color-1

Extrahujte text na základe farby písma z každej bunky


arrow modrá pravá bublina Extrahujte text na základe farby písma z každej bunky


V programe Excel môžete iba definovanú funkciu použiť na extrahovanie textu na základe farby písma.

1. lis Alt + F11 kľúče spoločne na otvorenie okna Microsoft Visual Basic for Applications.

2. cvaknutie Vložiť > Moduly a skopírujte nasledujúci kód VBA do vyskakovacieho okna.

VBA: Extrahovanie textu na základe farby písma

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. Potom uložte a zatvorte dialógové okno a vyberte prázdnu bunku vedľa zoznamu údajov, zadajte tento vzorec = GetColorText (A1) (A1 označuje bunku, z ktorej chcete získať text), stlačte tlačidlo vstúpiť kľúč na získanie potrebného textu a potom presuňte popisovač automatického dopĺňania tak, aby sa vyplnil vzorec podľa požadovaného rozsahu.

Teraz môžete vidieť všetok červený text extrahovaný.

doc-extract-text-color-2

Tip: V uvedenom kóde VBA, ak potrebujete extrahovať čierny text z buniek, môžete zmeniť názov farby Farba = vbRed na Color = vbBlack.


Relatívne články:



Odporúčané nástroje produktivity

Karta Office

zlatá hviezdička1 Prinášajte užitočné karty do programu Excel a iného softvéru balíka Office, rovnako ako Chrome, Firefox a nový Internet Explorer.

Kutools pre Excel

zlatá hviezdička1 Úžasný! Zvýšte svoju produktivitu za minúty 5. Nepotrebujú žiadne špeciálne schopnosti, okrem dvoch hodín denne!

zlatá hviezdička1 300 Nové funkcie pre program Excel, robiť Excel veľmi ľahké a výkonné:

  • Zlúčiť bunky / riadky / stĺpce bez straty dát.
  • Kombinácia a konsolidácia viacerých hárkov a pracovných kníh.
  • Porovnanie rozsahov, kopírovanie viacerých rozsahov, prevod textu na dátum, konverzia jednotiek a mien.
  • Počet podľa farieb, Medzisúčty stránkovania, Rozšírené triedenie a Super filter,
  • Viac Vyberte / Vložiť / Odstrániť / Text / Formát / Odkaz / Komentár / Pracovné zošity / pracovné listy Nástroje ...

Obraz obrazovky Kutools pre 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 · 2 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 · 2 months ago
    thanks, very interesting code.
  • To post as a guest, your comment is unpublished.
    Roberto · 3 months ago
    dimenticavo io ho Excel 2010
  • To post as a guest, your comment is unpublished.
    Roberto · 3 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