Se você gerenciar várias planilhas do Excel com dados semelhantes, você pode querer fundi-los todos em uma pasta de trabalho de síntese. Isso deixa os livros originais intactos e lhe dá uma única pasta de trabalho para usar como uma visão geral. Excel torna o processo mais fácil através do seu Visual Basic add-on . O código pode parecer longo e intimidante, mas é um trabalho de copiar e colar muito simples que na verdade não exigem codificação conhecimento ou experiência . Instruções
1
Coloque todas as pastas de trabalho que você deseja mesclar em uma pasta no seu computador.
2
Abra uma nova pasta de trabalho no Excel.
3
Pressione Alt + F11. Isto irá abrir o Editor do Visual Basic.
4
Selecione "Module" no menu "Inserir" .
5
Copie e cole o seguinte código VB para a janela de texto :
Sub MergeAllWorkbooks ()
Dim MyPath As String , FilesInPath As String Dim
MyFiles () As String Dim
SourceRcount As Long , FNum Como longa
Dim mybook Como livro , BaseWks Como Planilha
Dim sourceRange Como Range, destrange Como Faixa
Dim rnum As Long , CALCMODE As Long
MyPath = " PATHHERE "
Se Right ( MyPath , 1) <> " \\ " Então
MyPath = MyPath & "\\"
End If
FilesInPath = Dir ( MyPath & "* . xl *")
Se FilesInPath = "" Then
MsgBox "Nenhum arquivo encontrado"
Exit Sub
End If
FNum = 0
Do While FilesInPath <> " "
FNum = FNum + 1
ReDim Preserve MyFiles ( 1 Para FNum )
MyFiles ( FNum ) = FilesInPath
FilesInPath = Dir ( )
loop
Com Aplicação
CALCMODE = . Cálculo
. Cálculo = xlCalculationManual
. ScreenUpdating = False
. EnableEvents = False
End With
Definir BaseWks = Workbooks . ADD ( xlWBATWorksheet ) . planilhas (1)
rnum = 1
Se FNum > 0 então
Para FNum = LBOUND ( MyFiles ) Para UBound ( MyFiles )
Definir mybook = Nothing
On Error Resume Next
Definir mybook = Workbooks.Open ( MyPath & MyFiles ( FNum ) )
On Error GoTo 0
If Not mybook é nada Então
On Error Resume Next
Com mybook.Worksheets (1)
Set sourceRange = Range ( "A1: . C1 " )
End With
Se Err.Number > 0 Then
Err.Clear
Set sourceRange = Nothing Else
Se sourceRange.Columns.Count > = BaseWks.Columns.Count Então
Set sourceRange = Nothing
End If End If
On Error GoTo 0
If Not sourceRange é nada Então
SourceRcount = sourceRange.Rows.Count
Se rnum + SourceRcount > = BaseWks.Rows.Count Então
MsgBox " não há linhas suficientes na planilha de destino. "
BaseWks.Columns.AutoFit
mybook.Close savechanges : = False
GoTo ExitTheSub
Else
Com sourceRange
BaseWks.Cells ( rnum , "A") . _
Resize ( . Rows.Count ) . Valor = MyFiles ( FNum )
End With
Definir destrange = BaseWks.Range ( "B" & rnum ) < br >
Com sourceRange
Set destrange = destrange . _
Resize ( . Rows.Count , . Columns.Count )
End With
destrange.Value = sourceRange.Value
rnum = rnum + SourceRcount
End If End If
mybook.Close savechanges : = False End If
Próxima FNum
BaseWks.Columns.AutoFit
End If
ExitTheSub : . .
Com Aplicação
ScreenUpdating = True
EnableEvents =
verdadeira
. Cálculo = CALCMODE
End With End Sub
6
Substituir " PATHHERE " na linha 8 com o caminho para a pasta com todos os arquivos da pasta de trabalho . Utilize o formulário . "C: \\ Meus Documentos \\ Pasta1 \\ Pasta2 ... "
7
Pressione Alt + Q para criar o livro resumo