Como posso capturar substrings do texto do Excel apenas pela cor da fonte?

0

Estou usando o vlookup para capturar células selecionadas de uma planilha grande da maneira usual. No entanto, o texto que estou selecionando usa uma fonte colorida que transmite informações que preciso preservar. Mas o vlookup não copia a formatação. Eu vejo estas possibilidades:

a) Use o vlookup de alguma forma que preserve a formatação - não provável

b) Coloque colchetes ou algum delimitador em volta do texto colorido que será transferido com o vlookup.

Eunãomeimportocomacorcomotal,eusóprecisopreservarofatodequeumadeterminadasubstringé"especial". Se necessário, posso transferir o texto para o Word ou outro aplicativo. Obrigado como sempre.

    
por Tupelo Thistlehead 11.01.2017 / 00:24

2 respostas

0

O único recurso que o Excel pode discriminar entre diferentes células ou partes do texto com base em sua cor é o VBA. O Excel não é um editor de texto ou realmente projetado para relatórios ou apresentações elaborados - é uma ferramenta de análise. O Word ou o Powerpoint podem selecionar com base na cor do texto, porque são ferramentas de apresentação.

Sua segunda possibilidade, de adicionar caracteres delimitadores, é a melhor solução em um ambiente Excel; usar uma aplicação diferente pode ser sua melhor aposta.

Eu gostaria que o Excel não oferecesse tantas opções de formatação, especialmente em versões posteriores - os humanos são visualmente orientados, então continuamos usando a formatação onde os computadores realmente precisam é de delimitadores claros.

    
por 11.01.2017 / 22:15
0

Esta função faz o trabalho:

Function GetColorText(pRange As range) As String
    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 = RGB(112, 173, 71) Then
            xOut = xOut & VBA.Mid(xValue, i, 1)
        End If
    Next
    GetColorText = xOut
End Function

Os parâmetros de RGB precisam ser alterados para corresponder à cor que você está procurando. Além disso, se houver várias substrings em uma única célula, elas serão concatenadas juntas.

    
por 11.01.2017 / 22:30