Como combinar várias pastas de trabalho do excel usando vba?

Para combinar várias pastas de trabalho do Excel, você precisa usar algum código que permita escolher quais arquivos deseja combinar ou pode consultar um local de caminho específico e combinar todos os arquivos do Excel na pasta de trabalho atual.

VBA combina várias pastas de trabalho

Você pode usar o código a seguir, que usa o local que mencionei na variável path (uma pasta na área de trabalho do meu sistema).

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop

Etapas para combinar arquivos Excel usando VBA

  1. Abra o Editor do Visual Basic (certifique-se de habilitar a guia Desenvolvedor se já a tiver na Faixa de Opções).
    open the visual basic editor
  2. Depois disso, localize a pasta de trabalho atual na janela do projeto (control + r) e insira um novo módulo nela.
    locate the current workbook
  3. Você terá uma janela de código no módulo (clique duas vezes nela) onde deverá colar o código que possui (como está).
    code window in the module
  4. A partir daqui, você precisa alterar o valor da variável path com o local da pasta onde estão localizados todos os arquivos Excel que você deseja combinar.
    change the value for the path variable
  5. No final, execute o código e você obterá todas as planilhas da pasta de trabalho no arquivo atual.

Links úteis: Executar uma macroGravador de macroEditor Visual BasicManual pessoal de macros

Este código abre cada arquivo um por um e copia cada planilha uma por uma e cola no arquivo atual com o mesmo nome. Aqui está o mesmo código, mas com a tela sendo atualizada para false no início para executar tudo no backend.

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub

Observação: se você quiser aprender como combinar dados de várias pastas de trabalho em uma única tabela, consulte este guia.

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *