/ / Importar folhas usando o Excel VBA

Importar folhas usando o Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA naquela importa folhas de outros arquivos do Excel em um arquivo do Excel.

Baixe Book1.xls, Book2.xls e adicione-os a "C: test"

Situação:

Importar folhas usando o Excel VBA

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. Desligue a atualização da tela e exiba 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.

directory = "c:test"
fileName = Dir(directory & "*.xl??")

Nota: A função Dir suporta o uso de caracteres múltiplos (*) e caracteres únicos (?) Para procurar por todos os tipos diferentes de arquivos do Excel.

4. A variável fileName agora contém o nome do primeiro arquivo do Excel encontrado no diretório. Adicione um Do While Loop.

Do While fileName <> ""

Loop

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 do Excel.

Workbooks.Open (directory & fileName)

6. Importe as planilhas do arquivo do Excel para o import-sheet.xls.

For Each sheet In Workbooks(fileName).Worksheets
    total = Workbooks("import-sheets.xls").Worksheets.count
    Workbooks(fileName).Worksheets(sheet.Name).Copy _
    after:=Workbooks("import-sheets.xls").Worksheets(total)
Next sheet

Explicação: a variável total mantém o controle do número total de planilhas de importação-sheet.xls. Usamos o método Copy do objeto Worksheet para copiar cada planilha e colá-la após a última planilha de import-sheets.xls.

7. Feche o arquivo do 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 não houver mais nomes de arquivos correspondentes, a função Dir retornará uma cadeia de comprimento zero (""). Como resultado, o Excel VBA deixará o loop Do While.

9. Ligue a tela atualizando e exibindo alertas novamente (fora do loop).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Teste o programa.

Resultado:

Resultado das folhas de importação

Leia também: