Abaixo, veremos um programa em Excel VBA que importa planilhas de outros arquivos Excel para um arquivo Excel.
Baixe Book4.xlsx, Book5.xlsx e adicione-os a "C: \ test \"
Situação:
Adicione as seguintes linhas de código ao botão de comando:
1. Primeiro, declaramos duas variáveis do tipo String, um objeto Worksheet e uma variável do tipo Integer.
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
2. Desative a atualização da tela e a exibição de alertas.
Application.ScreenUpdating = False
Application.DisplayAlerts = False
3. Inicialize o diretório da variável. Usamos a função Dir para encontrar o primeiro * .xl ?? arquivo armazenado neste diretório.
diretório = "c: \ teste \"
fileName = Dir (diretório & "* .xl ??")
Nota: A função Dir suporta o uso de vários caracteres (*) e curingas de um único caractere (?) Para pesquisar todos os tipos diferentes de arquivos do Excel.
4. A variável fileName agora contém o nome do primeiro arquivo Excel encontrado no diretório. Adicione um Do While Loop.
Do While fileName ""
Ciclo
Adicione as seguintes linhas de código (em 5, 6, 7 e 8) ao loop.
5. Não há uma maneira simples de copiar planilhas de arquivos Excel fechados. Portanto, abrimos o arquivo Excel.
Workbooks.Open (diretório e nome do arquivo)
6. Importe as planilhas do arquivo Excel para import-sheet.xlsm.
Para cada folha nas pastas de trabalho (nome do arquivo). Folhas de trabalho
total = Workbooks ("import-sheets.xlsm"). Worksheets.count
Workbooks (fileName) .Worksheets (sheet.Name) .Copy _
depois: = Workbooks ("import-sheets.xlsm"). Worksheets (total)
Próxima folha
Explicação: a variável total controla o número total de planilhas de import-sheet.xlsm. Usamos o método Copy do objeto Worksheet para copiar cada planilha e colá-la após a última planilha de import-sheets.xlsm.
7. Feche o arquivo Excel.
Workbooks (fileName) .Close
8. A função Dir é uma função especial. Para obter os outros arquivos do Excel, você pode usar a função Dir novamente sem argumentos.
fileName = Dir ()
Nota: Quando nenhum outro nome de arquivo corresponde, a função Dir retorna uma string de comprimento zero (""). Como resultado, o Excel VBA deixará o loop Do While.
9. Ative a atualização da tela e a exibição de alertas novamente (fora do loop).
Application.ScreenUpdating = True
Application.DisplayAlerts = True
10. Teste o programa.
Resultado: