/ / File in una directory in VBA di Excel

File in una directory in VBA di Excel

Di seguito vedremo un programma in Excel VBA quello scorre in tutte le cartelle di lavoro e i fogli di lavoro chiusi in un elencoe visualizza tutti i nomi.

Scarica Book1.xls, Book2.xls, Book3.xls, Book4.xls e Book5.xls e aggiungili a "C: test"

Situazione:

File in un esempio di directory

Aggiungere le seguenti righe di codice al pulsante di comando:

1. In primo luogo, dichiariamo due variabili di tipo String, un oggetto Worksheet e due variabili di tipo Integer.

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

2. Per evitare lo sfarfallio dello schermo, disattivare l'aggiornamento dello schermo.

Application.ScreenUpdating = False

3. Inizializza la directory delle variabili. Usiamo la funzione Dir per trovare il primo * .xl ?? file memorizzato in questa directory.

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

Nota: la funzione Dir supporta l'uso di caratteri jolly a caratteri multipli (*) e singoli caratteri (?) Per cercare tutti i diversi tipi di file Excel.

4. La variabile fileName ora contiene il nome del primo file Excel trovato nella directory. Aggiungi un ciclo Do While.

Do While fileName <> ""

Loop

Aggiungi le seguenti linee di codice (a 5, 6, 7, 8 e 9) al ciclo.

5. Inizializza le variabili di tipo Integer e aggiungi il nome del file Excel alla prima colonna della riga i.

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

6. Non esiste un modo semplice per estrarre dati (o nomi di fogli) da file Excel chiusi. Pertanto, apriamo il file di Excel.

Workbooks.Open (directory & fileName)

7. Aggiungere tutti i nomi dei fogli del file Excel alle altre colonne della riga 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. Chiudere il file di Excel.

Workbooks(fileName).Close

9. La funzione Dir è una funzione speciale. Per ottenere gli altri file di Excel, è possibile utilizzare nuovamente la funzione Dir senza argomenti.

fileName = Dir()

Nota: quando non corrispondono più nomi di file, la funzione Dir restituisce una stringa di lunghezza zero (""). Di conseguenza, Excel VBA lascerà il ciclo Do While.

10. Attiva nuovamente lo schermo (fuori dal loop).

Application.ScreenUpdating = True

11. Testare il programma.

Risultato:

File in una directory in VBA di Excel

Leggi anche: