Como combinar vários arquivos do Excel em uma pasta de trabalho do Excel

Recebi um telefonema de um amigo que queria combinar vários arquivos do Excel em uma pasta de trabalho do Excel. Ele tinha muitos arquivos em uma pasta e queria reunir todas as planilhas de todas as pastas de trabalho em uma única pasta de trabalho.

Embora isso possa ser feito manualmente, seria demorado e sujeito a erros.

No entanto, um código VBA simples pode fazer isso em alguns segundos.

Combine vários arquivos do Excel em um arquivo

Aqui está o código que pode combinar várias pastas de trabalho do Excel em uma pasta especificada em uma única pasta de trabalho do Excel:

Sub ConslidateWorkbooks () 'Criado por Sumit Bansal de https://trumpexcel.com Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ ("userprofile") & "DesktopTest" Filename = Dir ( FolderPath & "* .xls *") Do While Filename "" Workbooks.Open Filename: = FolderPath & Filename, ReadOnly: = True para cada planilha em ActiveWorkbook.Sheets Sheet.Copy After: = ThisWorkbook.Sheets (1) Próxima planilha Workbooks (Nome do arquivo) .Close Filename = Dir () Loop Application.ScreenUpdating = True End Sub

Como usar este código?

Aqui estão as etapas para usar este código:

  • Coloque todos os arquivos do Excel que deseja combinar em uma pasta. Para o propósito deste tutorial, criei uma pasta chamada Teste e tenho seis arquivos nela (4 pastas de trabalho do Excel e 1 Power Point e Word cada).
  • Abra uma nova pasta de trabalho do Excel.
  • Pressione ALT + F11 (ou vá para Desenvolvedor -> Código -> Visual Basic). Isso abrirá o Editor do Visual Basic.
  • No Editor VB, no Editor de Projetos, clique com o botão direito em qualquer um dos objetos da pasta de trabalho e vá para Inserir -> Módulo. Isso irá inserir um módulo para a pasta de trabalho.
  • Clique duas vezes no módulo. Isso abrirá a janela de código à direita.
  • Copie e cole o código acima na janela de código.
  • No código, você precisa alterar a seguinte linha de código:
    FolderPath = Environ ("userprofile") & "DesktopTest"

    Nesta linha, altere a parte entre aspas duplas (destacada em laranja) com a localização da pasta na qual você tem os arquivos que deseja combinar. No código usado acima, a pasta está na Área de Trabalho. Caso você o tenha em algum outro local, especifique esse caminho aqui.

  • Posicione o cursor em qualquer lugar do código e clique no botão play verde nas opções da barra de ferramentas (ou pressione a tecla F5).

Isso executará o código e todas as planilhas de todos os arquivos do Excel na pasta serão consolidadas em uma única pasta de trabalho.

Como funciona este código?

  • O código usa a função DIR para obter os nomes dos arquivos da pasta especificada.
  • A linha a seguir atribui o primeiro nome de arquivo excel à variável ‘Filename’.
    Nome do arquivo = Dir (FolderPath & “* .xls *”)
  • Em seguida, o loop Do While é usado para verificar se todos os arquivos foram cobertos.
  • Dentro do loop ‘Do While’, ‘For Each’ loop é usado para copiar todas as planilhas para a pasta de trabalho na qual estamos executando o código.
  • No final do Do Loop, a seguinte linha de código é usada: Filename = Dir (). Ele atribui o próximo nome de arquivo do Excel à variável Filename e o loop é iniciado novamente.
  • Quando todos os arquivos são cobertos, a função DIR retorna uma string vazia, que é quando o loop termina.

Aqui está uma explicação da função DIR na biblioteca MSDN:

Dir retorna o primeiro nome de arquivo que corresponda ao nome do caminho. Para obter quaisquer nomes de arquivo adicionais que correspondam ao nome do caminho, chame Dir novamente sem argumentos. Quando não houver mais nomes de arquivo correspondentes, Dir retorna uma string de comprimento zero (“”).

Você já tentou algo desse tipo usando o VBA? Compartilhe o que você fez e todos nós podemos aprender com isso.

Economize uma quantidade louca de tempo usando o VBA. Confira a Excel VBA CURSO.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave