Ir para o conteúdo principal

Como copiar linhas de várias planilhas com base em critérios em uma nova planilha?

Suponha que você tenha uma pasta de trabalho com três planilhas que têm a mesma formatação da imagem mostrada abaixo. Agora, você deseja copiar todas as linhas dessas planilhas cuja coluna C contém o texto “Concluído” em uma nova planilha. Como você poderia resolver esse problema de forma rápida e fácil sem copiar e colar um por um manualmente?

Copie linhas de várias planilhas com base em critérios em uma nova planilha com código VBA


Copie linhas de várias planilhas com base em critérios em uma nova planilha com código VBA

O código VBA a seguir pode ajudá-lo a copiar linhas específicas de todas as planilhas da pasta de trabalho com base em uma determinada condição em uma nova planilha. Por 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 código a seguir na janela do módulo.

Código VBA: copie linhas de várias planilhas com base em critérios em uma nova planilha

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

Note: No código acima:

  • O texto "Efetuado" nisso xRStr = "Concluído" script indica a condição específica na qual você deseja copiar linhas;
  • C: C neste Defina xRg = xWs.Range ("C: C") script indica a coluna específica onde a condição se localiza.

3. Então aperte F5 chave para executar este código, e todas as linhas com a condição específica foram copiadas e coladas em uma nova planilha chamada Kutools for Excel na pasta de trabalho atual. Veja a captura de tela:


Artigos de dados mais relativos a puxar ou copiar:

  • Copiar dados para outra planilha com filtro avançado no Excel
  • Normalmente, podemos aplicar rapidamente o recurso Filtro avançado para extrair dados dos dados brutos na mesma planilha. Mas, às vezes, ao tentar copiar o resultado filtrado para outra planilha, você receberá a seguinte mensagem de aviso. Nesse caso, como você lidaria com essa tarefa no Excel?
  • Copiar linhas se a coluna contiver texto / valor específico no Excel
  • Supondo que você queira descobrir células contendo texto ou valor específico em uma coluna e, em seguida, copiar toda a linha onde a célula encontrada está, como você poderia lidar com isso? Aqui, vou apresentar alguns métodos para descobrir se a coluna contém um texto ou valor específico e, em seguida, copiar a linha inteira no Excel.

  • 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 e manutenção de dados; Dividir o conteúdo das células; Combine Linhas Duplicadas e Soma / Média... 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 ...
  • Fórmulas favoritas e de inserção rápida, Intervalos, gráficos e imagens; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • 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...
  • Agrupamento de tabela dinâmica por número da semana, dia da semana e mais ... Mostrar células desbloqueadas, bloqueadas por cores diferentes; Destacar células que possuem fórmula / nome...
guia kte 201905
  • 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
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi,

thank you very much for the code. I have a question: the code runs smoothly on some of my sheets, but looks like enters an infinite loop in some other ones which makes excel crash. What could the reason be?
This comment was minimized by the moderator on the site
Hello there, thank you so much for the code above, it solved me a problem with a complex file; a solution I have been looking for a while now. Thank you..I have one question. How do I change the code so that it copies the rows but only from colum A to colum Q, so not Entire.Row?Thank you in advance and great work!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations