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

Como mesclar rapidamente linhas adjacentes com os mesmos dados no Excel?

Suponha que você tenha uma planilha com os mesmos dados nas linhas adjacentes e agora queira mesclar as mesmas células em uma célula, para que os dados pareçam organizados e bonitos. Como você mescla linhas adjacentes com os mesmos dados de forma rápida e conveniente? Hoje, vou apresentar a vocês uma maneira rápida de resolver esse problema.


Mesclar linhas adjacentes dos mesmos dados com o código VBA

Claro, você pode mesclar os mesmos dados com Unir e centrar comando, mas se houver centenas de células que precisam ser mescladas, esse método será demorado. Portanto, o seguinte código VBA pode ajudá-lo a mesclar os mesmos dados facilmente.

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

2. Clique inserção > Móduloe cole a macro a seguir no Módulojanela.

Sub MergeSameCell()
'Updateby Extendoffice
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
    For i = 1 To xRows - 1
        For j = i + 1 To xRows
            If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
                Exit For
            End If
        Next
        WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
        i = j - 1
    Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

3. Em seguida, pressione o botão F5 para executar este código, uma caixa de diálogo é exibida na tela para selecionar um intervalo para trabalhar. Veja a imagem:

doc mesclar as mesmas células 2

4. Então clique OK, os mesmos dados na coluna A serão mesclados. Veja a imagem:

doc mesclar as mesmas células 1


Mesclar linhas adjacentes dos mesmos dados com o Kutools para Excel

Com o Mesclar mesmas células utilidade de Kutools for Excel, você pode mesclar rapidamente os mesmos valores em várias colunas com um clique.

Kutools for Excel : com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. 

Depois de instalar Kutools for Excel, você pode fazer o seguinte:

1. Selecione as colunas que deseja mesclar com as linhas adjacentes com os mesmos dados.

2. Clique Kutools > Unir e dividir > Mesclar as mesmas células, veja a captura de tela:

3. E então os mesmos dados nas colunas selecionadas foram mesclados em uma célula. Veja a imagem:

doc mesclar as mesmas células 4

Clique para baixar Kutools para Excel e avaliação gratuita agora!

Para saber mais sobre isso, visite este Mesclar as mesmas células recurso.


Demonstração: mesclar as mesmas células em uma célula ou desfazer a mesclagem para preencher os valores duplicados:

Kutools for Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. Baixe e teste grátis agora!

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-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. 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 (40)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Como faço para replicar a macro VBA para mesclar células adjacentes em colunas em vez de linhas? Obrigado
Violeta
Este comentário foi feito pelo moderador no site
Violeta, duplico a linha (abaixo). por exemplo, por exemplo, tentar tentar, por exemplo, tentar tentar E mudar o código para isto: Próximo WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Merge i = j - 1 It fundiu a linha acima para "eg" e "try"
rafael
Este comentário foi feito pelo moderador no site
para quem ainda está tentando conseguir isso, acho que entendi Start of Code ******************************** ***** Sub MergeSameCell() 'Updateby20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "MergeSimilar" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address , Type:=8) Application.ScreenUpdating = False Application.DisplayAlerts = False 'xRows = WorkRng.Rows.Count xCols = WorkRng.Columns.Count 'Para cada Rng em WorkRng.Columns ' Para i = 1 Para xRows - 1 ' Para j = i + 1 Para xRows ' If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then ' Exit For ' End If ' Next ' WorkRng.Parent.Range(Rng.Cells(i) , 1), Rng.Cells(j - 1, 1)).Mesclar ' i = j - 1 ' Next 'Next Para cada Rng em WorkRng.Rows Para i = 1 Para xCols - 1 Para j = i + 1 Para xCols If Rng.Cells(1, i).Value Rng.Cells(1, j).Value Então Exit For End If Next WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Merge i = j - 1 Next Next Application.DisplayAlerts = True Appl ication.ScreenUpdating = True End Sub ************************************* Fim do Código IE Basta modificar o código para trocar quaisquer referências de linha por referências de coluna
James
Este comentário foi feito pelo moderador no site
Muito obrigado!!! me ajudou em um momento crucial
Siva
Este comentário foi feito pelo moderador no site
Isso tem sido útil para mim muitas vezes :) Muito obrigado, me poupou muito tempo de trabalho. Eu tenho um pequeno pedido. Estou tentando encontrar a maneira de fazer a mesma mesclagem, mas quando houver células vazias abaixo de cada valor, mesclar cada célula com todas as células vazias abaixo. Como posso modificar a Macro? Agradeço antecipadamente
Ameaçar
Este comentário foi feito pelo moderador no site
Tente este código Sub MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:= 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count para cada Rng em WorkRng.Columns Para i = 1 Para xRows - 1 Para j = i + 1 Para xRows If Rng.Cells(i, 1 ).Valor Rng.Cells(j, 1).Value então sair para End If Next se não estiver vazio(Rng.Cells(i, 1).Value) ou não estiver vazio(Rng.Cells(j - 1, 1).Value ) Then WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
A. Afifi
Este comentário foi feito pelo moderador no site
tente este código Sub MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:= 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count para cada Rng em WorkRng.Columns Para i = 1 Para xRows - 1 Para j = i + 1 Para xRows If Rng.Cells(i, 1 ).Valor Rng.Cells(j, 1).Value então sair para End If Next se não estiver vazio(Rng.Cells(i, 1).Value) ou não estiver vazio(Rng.Cells(j - 1, 1).Value ) Then WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
A. Afifi
Este comentário foi feito pelo moderador no site
Se eu tiver o mesmo nome, minta Raju 1000 Raju 2000 Monu 100 Monu 200 Então como posso fazer o nome do marge com o valor
cp
Este comentário foi feito pelo moderador no site
Oi ao executar esta macro eu recebo o "Application-defined or object-defined error" na linha WorkRng.Parent.Range(rng.Cells(i, 1), rng.Cells(j - 1, 1)).Merge Any ideias de como consertar isso? Atenciosamente, Mical
Michal
Este comentário foi feito pelo moderador no site
Eu recebo mesmo erro. você já descobriu isso? se sim, como você fez? obrigado
Neo
Este comentário foi feito pelo moderador no site
estou recebendo o mesmo erro
estalido
Este comentário foi feito pelo moderador no site
Deixo aqui o script modificado para que ele mescle as células abaixo com o mesmo valor ou com célula vazia: Sub MergeSameCell() 'Updateby20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count For Each Rng In WorkRng.Columns For i = 1 Para xRows - 1 Para j = i + 1 Para xRows If Rng.Cells(j, 1).Value "" Then If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then Exit For End If End If Next WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True Finalizar Sub
Hector Osés
Este comentário foi feito pelo moderador no site
Oi por favor ajude. Eu tenho problema com o código, com esta linha. Algo errado? Se Rng.Cells(j, 1).Valor "" Então
Jimmy
Este comentário foi feito pelo moderador no site
Olá. Você deve ter: if Rng.Cells(j, 1).Value = "" then...
SonGokussj4
Este comentário foi feito pelo moderador no site
Mesclando legal. Mas é necessário especificar o intervalo durante a execução do código. Eu quero especificar o intervalo ou seja, B1:B50 no código vba. E tornando-o alinhamento superior esquerdo, mas como, por favor, ajude.
hasan
Este comentário foi feito pelo moderador no site
Ao executar o código acima, mostra o erro de compilação: erro de sintaxe. Na linha onde "" usado e linha inferior deste.
hasan
Este comentário foi feito pelo moderador no site
Eu também encontro esse problema com esta linha. If Rng.Cells(j, 1).Value "" Então alguém pode ajudar?
Jimmy
Este comentário foi feito pelo moderador no site
Olá, Como posso colocar intervalo automaticamente sem entrada do usuário
Debdata DEY
Este comentário foi feito pelo moderador no site
Desculpe, mas eu tenho outra pessoa para fazer o script para mim, não tenho conhecimento para ajudá-lo com as modificações.
Hector Osés
Este comentário foi feito pelo moderador no site
Olá senhor, . Eu tento o código vba, mas não está funcionando. Mensagem de erro para.408. Particularmente que o comentário WorkRng.Parent. Range(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Merge. Por favor, envie a solução. Eu gasto muito tempo mesclando os documentos. Estou principalmente mesclado este formato de células C20059290. Obrigado e cumprimentos Purusothaman. C
PURUSOTHAMAN
Este comentário foi feito pelo moderador no site
Caro senhor, . Estou usando o código vba para planilha do Excel para mesclar células. Não está funcionando veio por erro 408. Particularmente este código WorkRng.Parent. Range(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Merge. Dê a solução. Obrigado e cumprimentos Purusothaman
PURUSOTHAMAN
Este comentário foi feito pelo moderador no site
Oi, Alguém pode instruir com engenharia reversa - células desmarcando com o mesmo valor de preenchimento para todos.
Tharaka
Este comentário foi feito pelo moderador no site
Oi, O makro funciona, mas agora quando eu quero filtrar na coluna A, apenas as primeiras informações da coluna B aplicáveis ​​à coluna A são vistas. Olhando para o exemplo dado no makro, se eu quiser filtrar na segunda-feira após a mesclagem, apenas Nicol será exibido e nenhuma informação de Lucy e Lily será exibida. Existe uma linha que eu possa adicionar para evitar isso?
Xandre
Este comentário foi feito pelo moderador no site
se você realmente deseja filtrar, mesclar as células não o ajudará.
punido
Este comentário foi feito pelo moderador no site
In EXCEL INPUT NAME PRO1 PRO2 PRO3 A B C output A PRO1 A PRO2 A PRO3 B PRO1 B PRO2 B PRO3 C PRO1 C PRO2 C PRO3
SUMANO PAULO
Este comentário foi feito pelo moderador no site
Isso foi realmente útil e economizou meu tempo em maior medida
anjana anand enginee
Este comentário foi feito pelo moderador no site
O código VBA pode ser alterado para obter o mesmo para mesclar colunas (em oposição a linhas para baixo, como acima) e, em seguida, repetir para todas as linhas?
Joel
Este comentário foi feito pelo moderador no site
Use o código acima e depois transponha o resultado
Punit
Este comentário foi feito pelo moderador no site
Muito útil!! Muito obrigado
Priya Mohan
Este comentário foi feito pelo moderador no site
Oh amigo, você salva muitos dos meus dias. Obrigada!!!!
Anom Harya
Este comentário foi feito pelo moderador no site
Na linha de código VBA acima número 19 "i=j-1"
como isso vai afetar nossa lógica de qualquer maneira? Eu removi isso e ainda consegui obter o mesmo resultado!
Algum propósito específico por que está presente?
Kaushik Vankayala
Este comentário foi feito pelo moderador no site
É para limitar o valor i à última linha.
Favor desconsiderar este post!
Kaushik Vankayala
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0  Personagens
Locais sugeridos