Ir para o conteúdo principal

Como combinar várias pastas de trabalho em uma pasta de trabalho mestre no Excel?

Você já parou para combinar várias pastas de trabalho em uma pasta de trabalho mestre no Excel? O mais terrível é que as pastas de trabalho que você precisa combinar contêm várias planilhas. E como combinar apenas as planilhas especificadas de várias pastas de trabalho em uma pasta de trabalho? Este tutorial demonstra vários métodos úteis para ajudá-lo a resolver o problema passo a passo.


Combine várias pastas de trabalho em uma pasta de trabalho com a função Mover ou Copiar

Se houver apenas algumas pastas de trabalho que precisam ser combinadas, você pode usar o comando Mover ou Copiar para mover ou copiar manualmente as planilhas da pasta de trabalho original para a pasta de trabalho mestre.

1. Abra as pastas de trabalho que você fundirá em uma pasta de trabalho mestre.

2. Selecione as planilhas na pasta de trabalho original que você moverá ou copiará para a pasta de trabalho mestre.

notas:

1). Você pode selecionar várias planilhas não adjacentes segurando o Ctrl e clicando nas guias da folha uma por uma.

2). Para selecionar várias planilhas adjacentes, clique na guia da primeira planilha, segure o Shift e, em seguida, clique na guia da última planilha para selecionar todas.

3). Você pode clicar com o botão direito em qualquer guia da planilha, clicar em Selecione todas as planilhas no menu de contexto para selecionar todas as planilhas na pasta de trabalho ao mesmo tempo.

3. Depois de selecionar as planilhas necessárias, clique com o botão direito na guia da planilha e clique em Mover ou Copiar no menu de contexto. Veja a imagem:

4. Então o Mover ou Copiar caixa de diálogo aparece, no Agendar no menu suspenso, selecione a pasta de trabalho mestre para a qual você moverá ou copiará as planilhas. Selecione mover para terminar no Antes da folha caixa, marque a Crie uma cópia e, finalmente, clique no OK botão.

Então você pode ver planilhas em duas pastas de trabalho combinadas em uma. Repita as etapas acima para mover planilhas de outras pastas de trabalho para a pasta de trabalho mestre.


Combine várias pastas de trabalho ou planilhas especificadas de pastas de trabalho em uma pasta de trabalho mestre com VBA

Se houver várias pastas de trabalho que precisam ser mescladas em uma, você pode aplicar os seguintes códigos VBA para obter isso rapidamente. Faça o seguinte.

1. Coloque todas as pastas de trabalho que deseja combinar em uma no mesmo diretório.

2. Inicie um arquivo Excel (esta pasta de trabalho será a pasta de trabalho mestre).

3. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para aplicativos janela. No Microsoft Visual Basic para aplicativos janela, clique em inserção > Móduloe copie o código VBA abaixo para a janela Módulo.

Código VBA 1: mesclar várias pastas de trabalho do Excel em uma

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
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
End Sub
	

notas:

1. O código VBA acima manterá os nomes das planilhas das pastas de trabalho originais após a fusão.

2. Se você deseja distinguir quais planilhas na pasta de trabalho mestre vieram de onde após a fusão, aplique o código 2 do VBA abaixo.

3. Se você deseja apenas combinar planilhas especificadas das pastas de trabalho em uma pasta de trabalho mestre, o código VBA 3 abaixo pode ajudar.

Em códigos VBA, “C: \ Users \ DT168 \ Desktop \ KTE \”É o caminho da pasta. No código 3 do VBA, "Folha1, Folha3"são as planilhas especificadas das pastas de trabalho que você combinará em uma pasta de trabalho mestre. Você pode alterá-las com base em suas necessidades.

Código VBA 2: mesclar pastas de trabalho em uma (cada planilha será nomeada com o prefixo de seu nome de arquivo original):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Código VBA 3: mesclar planilhas de pastas de trabalho especificadas em uma pasta de trabalho mestre:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. aperte o F5 chave para executar o código. Em seguida, todas as planilhas ou planilhas especificadas das pastas de trabalho em determinada pasta são combinadas em uma pasta de trabalho mestre de uma vez.


Combine facilmente várias pastas de trabalho ou planilhas específicas de pastas de trabalho em uma pasta de trabalho

Felizmente, o Combinar utilitário de pasta de trabalho de Kutools for Excel torna muito mais fácil mesclar várias pastas de trabalho em uma. Vamos ver como fazer essa função funcionar combinando várias pastas de trabalho.

Antes de aplicar Kutools for Excel, Por favor baixe e instale primeiro.

1. Crie uma nova pasta de trabalho e clique em Kutools Plus > Combinar. Em seguida, uma caixa de diálogo é exibida para lembrá-lo de que todas as pastas de trabalho combinadas devem ser salvas e o recurso não pode ser aplicado a pastas de trabalho protegidas, clique no botão OK botão.

2. No Combinar planilhas assistente, selecione Combine várias planilhas de pastas de trabalho em uma pasta de trabalho opção e, em seguida, clique no Próximo botão. Veja a imagem:

3. No Combinar planilhas - Etapa 2 de 3 caixa de diálogo, clique no botão Adicionar > Envie o or Pasta para adicionar os arquivos do Excel, você os fundirá em um. Após adicionar os arquivos do Excel, clique no botão Acabamento e escolha uma pasta para salvar a pasta de trabalho mestre. Veja a imagem:

Agora todas as pastas de trabalho estão mescladas em uma.

Comparado com os dois métodos acima, Kutools for Excel tem as seguintes vantagens:

  • 1) Todas as pastas de trabalho e planilhas são listadas na caixa de diálogo;
  • 2) Para as planilhas que você deseja excluir da fusão, apenas desmarque;
  • 3) As planilhas em branco são excluídas automaticamente;
  • 4) O nome do arquivo original será adicionado como prefixo ao nome da planilha após a fusão;
  • Para obter mais funções deste recurso, por favor visite aqui.

  Se você quiser ter um teste gratuito (30 dias) deste utilitário, por favor clique para fazer o downloade, em seguida, aplique a operação de acordo com as etapas acima.


Kutools para Excel - Ajuda você a sempre terminar o trabalho antes do tempo, ter mais tempo para aproveitar a vida
Você costuma se surpreender com o trabalho, falta de tempo para gastar com você e sua família?  Kutools for Excel pode ajudá-lo a lidar com 80% Supere os quebra-cabeças e melhore a eficiência do trabalho em 80%, dando a você mais tempo para cuidar da família e aproveitar a vida.
300 ferramentas avançadas para 1500 cenários de trabalho, tornam seu trabalho muito mais fácil do que nunca.
Não é mais necessário memorizar fórmulas e códigos VBA, dê um descanso ao seu cérebro de agora em diante.
Operações complicadas e repetidas podem ser realizadas em um único processamento em segundos.
Reduza milhares de operações com teclado e mouse todos os dias, diga adeus às doenças ocupacionais agora.
Torne-se um especialista em Excel em 3 minutos, ajude você a ser reconhecido rapidamente e receba uma promoção de aumento de salário.
110,000 pessoas altamente eficazes e mais de 300 opções de empresas de renome mundial.
Faça seus $ 39.0 valerem mais do que $ 4000.0 para treinamento de outras pessoas.
Avaliação gratuita de todos os recursos por 30 dias. Garantia de devolução do dinheiro em 60 dias sem motivo.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations