Dica: outros idiomas são traduzidos pelo Google. Você pode visitar o English versão deste link.
Entrar
x
or
x
x
Cadastre-se
x

or

Como extrair texto com base na cor da fonte de uma célula no Excel?

Se você tiver uma lista de dados com algum texto vermelho em cada célula no Excel, conforme mostrado abaixo, e você sabe como extrair apenas o texto vermelho? Agora vou apresentar uma maneira rápida de resolver o quebra-cabeça que extrai texto com base na cor da fonte de uma célula no Excel.

doc-extract-text-color-1

Extraia texto com base na cor da fonte de cada célula


arrow blue right bubble Extraia texto com base na cor da fonte de cada célula


No Excel, você só pode usar a função definida para extrair o texto com base na cor da fonte.

1. Pressione Alt + F11 juntas para abrir a janela Microsoft Visual Basic for Applications.

2. Clique inserção > Módulo e copie o código VBA seguinte para a janela exibida.

VBA: extrair texto com base 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. Em seguida, salve e feche a caixa de diálogo e selecione uma célula em branco ao lado da lista de dados, digite esta fórmula = GetColorText (A1) (A1 indica a célula da qual deseja extrair texto), pressione entrar chave para obter o texto necessário, então arraste o identificador de preenchimento automático para preencher a fórmula para o intervalo desejado.

Agora você pode ver todo o texto vermelho extraído.

doc-extract-text-color-2

Ponta: No código VBA acima, se você precisar extrair o texto preto das células, você pode alterar o nome da cor Cor = vbRed para Cor = vbBlack.


Artigos relativos:



Ferramentas de produtividade recomendadas

Office Tab

ouro star1 Traga guias úteis para o Excel e outros softwares do Office, como o Chrome, o Firefox e o novo Internet Explorer.

Kutools for Excel

ouro star1 Surpreendente! Aumente sua produtividade em minutos 5. Não precisa de habilidades especiais, economize duas horas por dia!

ouro star1 300 Novos recursos para o Excel, Faça o Excel muito fácil e poderoso:

  • Mesclar células / linhas / colunas sem perder dados.
  • Combine e Consolide várias folhas e pastas de trabalho.
  • Comparar intervalos, copiar intervalos múltiplos, converter texto para data, unidade e conversão de moeda.
  • Contagem de cores, subtotais de paginação, classificação avançada e super filtro,
  • Mais Selecionar / Inserir / Excluir / Texto / Formato / Link / Comentário / Guias de trabalho / Ferramentas de trabalho ...

Tira de tela 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 · 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