Cookies hjälper oss att leverera våra tjänster. Genom att använda våra tjänster samtycker du till vår användning av cookies.
Tips: Andra språk är Google-översatta. Du kan besöka English version av den här länken.
Logga in
x
or
x
x
Registrera
x

or

Hur extraheras text baserat på teckensnittfärg från en cell i Excel?

Om du har en datalista med någon röd text i varje cell i Excel som visas som nedan, och kan du bara extrahera den röda texten? Nu ska jag presentera ett snabbt sätt att lösa pusslet som extraherar text baserat på teckensfärgen från en cell i Excel.

doc-extrakt-text-färg 1

Extrahera text baserat på teckensnittfärg från varje cell


pilblå höger bubbla Extrahera text baserat på teckensnittfärg från varje cell


I Excel kan du bara använda den definierade funktionen för att extrahera texten baserat på teckensfärg.

1. Tryck Alt + F11 tangenterna tillsammans för att öppna fönstret Microsoft Visual Basic for Applications.

2. klick Infoga > Modulerna och kopiera den efterföljande VBA-koden till det utrustade fönstret.

VBA: Extrahera text baserat på teckensfärg

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. Spara sedan och stäng dialogrutan och välj en tom cell bredvid datalistan genom att skriva den här formeln = GetColorText (A1) (A1 anger cellen du vill extrahera text från), tryck på ange nyckeln för att få önskad text, dra sedan autofyllhandtaget för att fylla formeln till det intervall du vill ha.

Nu kan du se all röd text extraheras.

doc-extrakt-text-färg 2

Tips: I ovanstående VBA-kod, om du behöver extrahera den svarta texten från celler, kan du ändra färgnamnet Färg = vbRed till Color = vbBlack.


Relativa artiklar:



Rekommenderade produktivitetsverktyg

Fliken Office

guld star1 Hämta praktiska flikar till Excel och annan Office-programvara, precis som Chrome, Firefox och ny Internet Explorer.

Kutools för Excel

guld star1 Fantastiskt! Öka din produktivitet i 5 minuter. Behöver inte några speciella färdigheter, spara två timmar varje dag!

guld star1 300 Nya funktioner för Excel, gör Excel mycket enkelt och kraftfullt:

  • Sammanfoga cell / rader / kolumner utan att förlora data.
  • Kombinera och konsolidera flera ark och arbetsböcker.
  • Jämför rader, kopiera flera rader, konvertera text till datum, enhet och valutaomvandling.
  • Räkna med färger, personsökande subtotaler, avancerad sortering och superfilter,
  • Mer Välj / Infoga / Radera / Text / Format / Länk / Kommentar / Arbetsböcker / Arbetsblad Verktyg ...

Skärmdump av Kutools för 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