Às vezes precisamos combinar planilhas de diferentes pastas de trabalho do Excel para criar um novo relatório ou arquivo de dados consolidados. Essa operação pode ser feita manualmente, usando ferramentas padrão do MS Excel, mas pode exigir muito tempo e esforço. Vejamos como podemos automatizar esse processo e agilizar o trabalho com relatórios.
Por exemplo, temos muitas pastas de trabalho Excel e queremos fazer coleção de planilhas de todos os livros em um arquivo. Para fazer isso, abra a pasta de trabalho onde deseja coletar todas as planilhas e adicione o seguinte código de macro.
Com a pasta de trabalho Excel aberta, onde você deseja coletar todas as planilhas, abra o Visual Basic Editor (Alt+F11), inserir módulo VBA ( Insert - Module ) e copie este código de macro lá:
Sub CombineWorkbooks() 'moonexcel.com.ua Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox " Nenhum arquivo foi selecionado! " GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
Depois disso, você pode retornar ao Excel e executar nossa macro através do menu Tools - Macro - Macros (Alt+F8) . Uma caixa de diálogo aparecerá onde você precisa selecionar um ou mais (mantendo Ctrl) arquivos cujas planilhas queremos adicionar à pasta de trabalho atual.
Se você usar uma extensão de arquivo Excel diferente (por exemplo, *.xlsx, *.xlsm, *.xlsb, etc.), será necessário fazer as alterações apropriadas na nona linha do código de nossa macro.