Como percorrer pastas de trabalho em um diretório e copiar dados para uma planilha mestre no Excel?
Suponha que você tenha várias pastas de trabalho do Excel em uma pasta e precise percorrer todos esses arquivos para copiar dados de um intervalo específico em uma planilha consistente (por exemplo, Planilha1) para uma planilha mestre. Este guia fornece uma solução detalhada em VBA para agilizar esse processo no Excel.
Percorra os arquivos em um diretório e copie os dados para uma planilha mestre com código VBA
Se você deseja copiar dados do intervalo A1:D4 em todas as planilhas Planilha1 das pastas de trabalho em uma pasta específica e colá-los em uma planilha mestre, siga os passos abaixo.
1. Na pasta de trabalho onde você criará uma planilha mestre, pressione as teclas Alt + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Na janela Microsoft Visual Basic for Applications, clique em Inserir > Módulo. Em seguida, copie o seguinte código VBA na janela de código.
Código VBA: percorra os arquivos em uma pasta e copie os dados para uma planilha mestre
Sub Merge2MultiSheets()
Dim xRg As Range
Dim xSelItem As Variant
Dim xFileDlg As FileDialog
Dim xFileName, xSheetName, xRgStr As String
Dim xBook, xWorkBook As Workbook
Dim xSheet As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
xSheetName = "Sheet1"
xRgStr = "A1:D4"
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
With xFileDlg
If .Show = -1 Then
xSelItem = .SelectedItems.Item(1)
Set xWorkBook = ThisWorkbook
Set xSheet = xWorkBook.Sheets("New Sheet")
If xSheet Is Nothing Then
xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
Set xSheet = xWorkBook.Sheets("New Sheet")
End If
xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
If xFileName = "" Then Exit Sub
Do Until xFileName = ""
Set xBook = Workbooks.Open(xSelItem & "\" & xFileName)
Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
xFileName = Dir()
xBook.Close
Loop
End If
End With
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Observação:
3. Pressione a tecla F5 para executar o código.
4. Na janela Procurar que se abre, selecione a pasta que contém os arquivos que você irá percorrer e, em seguida, clique no botão OK. Veja a captura de tela:
Uma planilha mestre chamada “Nova Planilha” será então criada no final da pasta de trabalho atual. E os dados no intervalo A1:D4 de todas as Planilhas1 na pasta selecionada serão listados dentro dessa planilha.
Artigos relacionados:
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!