Importar planilhas usando Excel VBA - Macros fáceis do Excel

Índice

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:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave