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

Como concatenar colunas de células e manter a cor do texto no Excel?

Como todos sabemos, ao concatenar ou combinar colunas de células em uma coluna, a formatação da célula (como cor da fonte do texto, formatação de número, etc.) será perdida. Neste artigo, vou apresentar alguns truques para combinar as colunas das células em uma e manter a cor do texto o mais facilmente possível no Excel.

Concatene colunas de células e mantenha a cor da fonte do texto com o código VBA


Concatene colunas de células e mantenha a cor da fonte do texto com o código VBA

Para terminar esta tarefa no Excel, o seguinte código VBA pode lhe fazer um favor, faça o seguinte:

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: concatene colunas de células e mantenha a cor do texto:

Sub MergeFormatCell()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xRgEachRow As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim I As Integer
    Dim xRgLen As Integer
    Dim xSRgRows As Integer
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Please select cell columns to concatenate:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSRgRows = xSRg.Rows.Count
    Set xDRg = Application.InputBox("Please select cells to output the result:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRgRows
        xRgLen = 1
        With xDRg.Offset(I - 1)
            .Value = vbNullString
            .ClearFormats
            Set xRgEachRow = xSRg(1).Offset(I - 1).Resize(1, xSRg.Columns.Count)
            For Each xRgEach In xRgEachRow
                .Value = .Value & Trim(xRgEach.Value) & " "
            Next
            For Each xRgEach In xRgEachRow
                xRgVal = xRgEach.Value
                With .Characters(xRgLen, Len(Trim(xRgVal))).Font
                .Name = xRgEach.Font.Name
                .FontStyle = xRgEach.Font.FontStyle
                .Size = xRgEach.Font.Size
                .Strikethrough = xRgEach.Font.Strikethrough
                .Superscript = xRgEach.Font.Superscript
                .Subscript = xRgEach.Font.Subscript
                .OutlineFont = xRgEach.Font.OutlineFont
                .Shadow = xRgEach.Font.Shadow
                .Underline = xRgEach.Font.Underline
                .ColorIndex = xRgEach.Font.ColorIndex
                End With
                xRgLen = xRgLen + Len(Trim(xRgVal)) + 1
            Next
        End With
    Next I
End Sub

3. Então aperte F5 para executar este código e uma caixa de prompt é exibida para lembrá-lo de selecionar o intervalo de dados que deseja combinar com a cor do texto, consulte a captura de tela:

4. E, em seguida, clique em OK, outra caixa de diálogo é exibida, selecione as células nas quais deseja enviar os resultados combinados, consulte a captura de tela:

5. Então clique OK botão, as colunas foram concatenadas sem perder a cor do texto, conforme mostrado a seguir:

Nota: Se os dados que precisam ser combinados incluem números, o código de macro não pode funcionar corretamente.


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (9)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Este código funciona muito bem. Mas, como adiciono espaço antes ou depois do texto?
Este comentário foi feito pelo moderador no site
Olá,
Este método funciona bem, até que xRgLen seja maior que 255.
Parece que este parâmetro é um byte :-(
Como essa limitação pode ser superada?
Este comentário foi feito pelo moderador no site
Fantástica a macro de concatenar cadeia de texto conservando o formato de origem. No caso de não funcionar com F5, pero na macro pestaña, modificar e opções me permite entrar no modo de execução com CTRL+letra e funciona de maravilla. Muchas gracias.
Este comentário foi feito pelo moderador no site
Você teria uma maneira de fazê-lo com números?
Este comentário foi feito pelo moderador no site
Obrigado pelo código.
Se o texto tiver "( )", por exemplo "tomate (tomates)". Também não funciona. Existe algo para modificar para trabalhar com "( ) "?
Este comentário foi feito pelo moderador no site
Olá Rah,
Como vai? Se o texto tiver "( )", não precisamos alterar o código VBA. Por favor, veja a captura de tela, o texto "tomate (tomatoes)" pode ser combinado com sucesso com outras colunas de células em uma coluna. Espero que possa ajudá-lo.
Atenciosamente,
Mandy
Este comentário foi feito pelo moderador no site
obrigado pelo código!
Pode ser atualizado automaticamente a coluna concatenar se houver alguma alteração?
Este comentário foi feito pelo moderador no site
Olá, Kathy,
Desculpe, no momento, não há uma boa maneira de fazer isso, você precisa executar o código novamente após alterar o conteúdo da célula. 😂
Obrigado!
Este comentário foi feito pelo moderador no site
Tudo bem, obrigado pela sua resposta
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL