/ / Arquivos em um diretório no Excel VBA

Arquivos em um diretório no Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA naquela percorre todas as pastas de trabalho e planilhas fechadas em um diretórioe exibe todos os nomes.

Faça o download de Book1.xls, Book2.xls, Book3.xls, Book4.xls e Book5.xls e adicione-os a "C: test"

Situação:

Arquivos em um exemplo de diretório

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 duas variáveis ​​do tipo Integer.

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer

2. Para evitar a cintilação da tela, desative a atualização da tela.

Application.ScreenUpdating = 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, 8 e 9) ao loop.

5. Inicialize as variáveis ​​do tipo Integer e inclua o nome do arquivo do Excel na primeira coluna da linha i.

i = i + 1
j = 2
Cells(i, 1) = fileName

6. Não existe uma maneira simples de extrair dados (ou nomes de folhas) de arquivos Excel fechados. Portanto, abrimos o arquivo do Excel.

Workbooks.Open (directory & fileName)

7. Adicione todos os nomes das folhas do arquivo Excel às outras colunas da linha i.

For Each sheet In Workbooks(fileName).Worksheets
    Workbooks("files-in-a-directory.xls").Worksheets(1).Cells(i, j).Value = sheet.Name
    j = j + 1
Next sheet

8. Feche o arquivo do Excel.

Workbooks(fileName).Close

9. 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.

10. Ligue a tela atualizando novamente (fora do loop).

Application.ScreenUpdating = True

11. Teste o programa.

Resultado:

Arquivos em um diretório no Excel VBA

Leia também: