As cookies axúdanos a entregar os nosos servizos. Ao usar os nosos servizos, acepta o noso uso das cookies.
Consello: outros idiomas están traducidos a Google. Podes visitar o English versión desta ligazón.
Iniciar sesión
x
or
x
x
Register
x

or

Como extraer texto baseado na cor da fonte dunha cela en Excel?

Se tes unha lista de datos con algún texto vermello en cada cela de Excel como se mostra na seguinte captura de pantalla e sabes como extraer o texto vermello só? Agora vou presentar unha forma rápida de resolver o enigma que extrae o texto baseado na cor da fonte dunha cela en Excel.

doc-extract-text-color-1

Extrae o texto baseado na cor da fonte de cada cela


frecha burbulla dereita azul Extrae o texto baseado na cor da fonte de cada cela


En Excel, só podes usar a función definida para extraer o texto en función da cor da fonte.

1. Preme Alt + F11 claves xuntos para abrir a xanela Microsoft Visual Basic para aplicacións.

2. Fai clic Inserir > Módulos e copie o seguinte código VBA á xanela emerxente.

VBA: extraer texto baseado na cor da fonte

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. A continuación, garde e pecha o diálogo e seleccione unha cela en branco á beira da lista de datos, escriba esta fórmula = GetColorText (A1) (A1 indica a cela que desexa extraer de texto), prema Entrar clave para obter o texto necesario e, a continuación, arrastre o control de autocompletar para cubrir a fórmula ata o intervalo que desexe.

Agora podes ver que se extraen todos os textos vermellos.

doc-extract-text-color-2

Punta: No código VBA anterior, se precisa extraer o texto negro das celas, pode cambiar o nome de cor Cor = vbRed a Cor = vbBlack.


Artigos relativos:



Ferramentas de produtividade recomendadas

Tabulación de Office

estrela de ouro1 Traia páxinas útiles para Excel e outro software de Office, como Chrome, Firefox e Internet Explorer novo.

Kutools para Excel

estrela de ouro1 Sorprendente! Aumenta tu productividad en 5 minutos. Non necesitas habilidades especiais, garda dúas horas todos os días.

estrela de ouro1 300 Novidades para Excel, Excel moi fácil e poderoso:

  • Combina celas / filas / columnas sen perder datos.
  • Combina e consolida varias follas e libros de traballo.
  • Comparar intervalos, copiar varios intervalos, converter texto a data, conversión de unidade e moeda.
  • Conta por cores, subtotales de paginación, clasificación avanzada e filtro super,
  • Máis Seleccionar / Inserir / Eliminar / Texto / Formato / Ligazón / Comentario / Libros / Follas de ferramentas ...

Pantalla de Kutools para 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