Como percorrer arquivos em um diretório e copiar dados em uma planilha mestre no Excel?
Supondo que haja várias pastas de trabalho do Excel em uma pasta e você queira percorrer todos esses arquivos do Excel e copiar dados de um intervalo especificado de planilhas com o mesmo nome em uma planilha mestre do Excel, o que pode fazer? Este artigo apresenta um método para alcançá-lo em detalhes.
Percorra os arquivos em um diretório e copie os dados em uma planilha mestre com código VBA
Percorra os arquivos em um diretório e copie os dados em uma planilha mestre com código VBA
Se você deseja copiar os dados especificados no intervalo A1: D4 de todas as planilhas 1 das pastas de trabalho em uma determinada pasta para uma planilha mestre, faça o seguinte.
1. Na pasta de trabalho, você criará uma planilha mestre, pressione o botão outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, copie o código VBA abaixo para a janela de código.
Código VBA: percorre arquivos em uma pasta e copia os dados em 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
Note:
3. aperte o F5 chave para executar o código.
4. Na abertura Procurar janela, selecione a pasta que contém os arquivos que você percorrerá e clique no botão OK botão. Veja a imagem:
Em seguida, uma planilha mestre chamada “Nova Planilha” é criada no final da pasta de trabalho atual. E os dados no intervalo A1: D4 de todas as Planilhas1 na pasta selecionada são listados dentro da planilha.
Artigos relacionados:
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab 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!