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

Cum se extrage textul bazat pe culoarea fontului dintr-o celulă din Excel?

Dacă aveți o listă de date cu un anumit text roșu în fiecare celulă din Excel, așa cum se arată în imaginea de mai jos, și știți cum să extrageți numai textul roșu? Acum voi introduce o modalitate rapidă de a rezolva puzzle-ul care extrage text pe baza culorii fontului dintr-o celulă din Excel.

doc-extract-text-color-1

Extrageți text pe baza culorii fontului din fiecare celulă

Fila Office Activați editarea și navigarea cu file în Office și faceți munca mult mai ușoară ...
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
  • Reutilizați orice: Adăugați cele mai utilizate sau complexe formule, diagrame și orice altceva la preferatele dvs. și reutilizați-le rapid în viitor.
  • Peste 20 de caracteristici text: Extrageți numărul din șirul de text; Extrageți sau eliminați o parte din texte; Conversia numerelor și valutelor în cuvinte în limba engleză.
  • Instrumente de îmbinare: Mai multe cărți de lucru și foi într-unul; Combinați mai multe celule / rânduri / coloane fără a pierde date; Combinați rândurile duplicate și suma.
  • Instrumente divizate: Împărțiți datele în mai multe foi bazate pe valoare; Un registru de lucru pentru mai multe fișiere Excel, PDF sau CSV; O coloană la mai multe coloane.
  • Lipiți săriți Rânduri ascunse / filtrate; Număr și sumă de Culoarea fundalului; Trimiteți e-mailuri personalizate către mai mulți destinatari în bloc.
  • Super Filtru: Creați scheme avansate de filtrare și aplicați oricăror foi; Sortează pe săptămână, zi, frecvență și multe altele; Filtru prin îndrăznețe, formule, comentarii ...
  • Peste 300 de caracteristici puternice; Funcționează cu Office 2007-2021 și 365; Suporta toate limbile; Implementare ușoară în întreprinderea sau organizația dvs.

săgeată albastru dreapta balon Extrageți text pe baza culorii fontului din fiecare celulă

În Excel, puteți utiliza numai funcția definită pentru a extrage textul pe baza culorii fontului.

1. presa Alt + F11 tastele împreună pentru a deschide fereastra Microsoft Visual Basic pentru aplicații.

2. clic Insera > Module și copiați următorul cod VBA în fereastra pop-out.

VBA: extrageți text pe baza culorii fontului

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. Apoi salvați și închideți dialogul și selectați o celulă goală lângă lista de date, tastați această formulă = GetColorText (A1) (A1 indică celula din care doriți să extrageți text), apăsați Intrați pentru a obține textul necesar, apoi trageți mânerul de completare automată pentru a completa formula în intervalul dorit.

Acum puteți vedea că toate textele roșii sunt extrase.

doc-extract-text-color-2

varful: În codul VBA de mai sus, puteți schimba culoarea rgb din acest script TextColor = RGB(255, 0, 0) pentru a vă satisface nevoia.


Articole relative:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (14)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, când am încercat să folosesc vbBlue, nu a funcționat. Ajutati-ma va rog? Mulțumiri!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dați culoarea fontului exact culoarea albastră.
Pentru că există multe tipuri de culoare albastră "albastru deschis, albastru cer, albastru închis"
vba se potrivește doar culoarea exactă.??????
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul funcționează bine dacă șirurile roșii sunt continue. În cazul în care sunt separate în celula sursă, ele sunt lipite unul de celălalt în celula de ieșire. Adică nu există spațiu în ieșire dacă șirurile de text roșii sunt departe unul de celălalt. Vă rog, puteți oferi o soluție pentru asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Hei, mulțumesc pentru pont. Funcționează excelent cu roșu și negru.
Ce se întâmplă dacă vreau să analizez „Violet”? schimbarea lui vbPurple nu funcționează.
mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buonasera, grazie mille un'ottima function. Però ho un problema, quando val nel foglio ed inserisco es. = GetColorText (A1) îmi returnează il valore giusto, însă come riavvio il file mi da error #VALORE! ce pot face?
Acest comentariu a fost redus la minimum de moderatorul de pe site
uitați de Excel 2010
Acest comentariu a fost redus la minimum de moderatorul de pe site
multumesc, cod foarte interesant.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul funcționează bine dacă șirurile roșii sunt continue. În cazul în care sunt separate în celula sursă, ele sunt lipite unul de celălalt în celula de ieșire. Adică nu există spațiu în ieșire dacă șirurile de text roșii sunt departe unul de celălalt. Vă rog, puteți oferi o soluție pentru asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încercați asta, ar trebui să funcționeze
Funcția GetColorText(pRange As Range) As String
„Actualizat pentru a obține mai multe
Dim xOut As String
Dim xValue ca șir
Dim i As Long
Dim was Red As Boolean
xValue = pRange.Text

Pentru i = 1 la VBA.Len(xValue)

Dacă pRange.Caractere(i, 1).Font.Color = vbRed Atunci
xOut = xOut și VBA.Mid(xValue, i, 1)
wasRed = Adevărat
ElseIf wasRed = Adevărat Atunci
wasRed = Fals
xOut = xOut & ";"
Final, dacă

Pagina Următoare →

GetColorText = xOut
Sfârşit Funcţia

Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc o tonă, a funcționat perfect. Esti un salvator Tim :-) 
Acest comentariu a fost redus la minimum de moderatorul de pe site
Încă nu am putut extrage textul albastru (#1166BB). Există vreo modalitate de a folosi Hex: #1166BB pentru a obține textul color de care am nevoie?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Robert E Perez, am actualizat codul VBA, acum, acceptă obținerea de text colorat prin cod rgb. Puteți încerca din nou codul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am un anumit text într-o celulă separată prin virgulă și culoare pentru fiecare text. În timp ce folosesc funcția Delimiter, nu pot păstra culoarea fontului textului. Apreciez ajutorul!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, jdhjjd, nu vă înțeleg clar întrebarea. Doriți să extrageți textul specific din celule și să păstrați culoarea fontului, așa cum se arată mai jos?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color.png
sau împărțiți celulele și păstrați culoarea fontului pentru fiecare text?
https://www.extendoffice.com/images/stories/comments/sun-comment/split_and_keep_font_color-2.png
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL