Importa fogli usando Excel VBA - Easy Excel Macros

Sommario

Di seguito vedremo un programma in Excel VBA Quello importa fogli da altri file Excel in un unico file Excel.

Scarica Book4.xlsx, Book5.xlsx e aggiungili a "C:\test\"

Situazione:

Aggiungi le seguenti righe di codice al pulsante di comando:

1. Innanzitutto, dichiariamo due variabili di tipo String, un oggetto Foglio di lavoro e una variabile di tipo Integer.

Dim directory As String, fileName As String, foglio As Worksheet, totale As Integer

2. Disattiva l'aggiornamento dello schermo e la visualizzazione degli avvisi.

Application.ScreenUpdating = False
Application.DisplayAlerts = False

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

cartella = "c:\prova\"
nomefile = Dir(directory & "*.xl??")

Nota: la funzione Dir supporta l'uso di caratteri jolly 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 nomefile ""
Ciclo continuo

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

5. Non esiste un modo semplice per copiare fogli di lavoro da file Excel chiusi. Pertanto apriamo il file Excel.

Cartelle di lavoro.Apri (directory e nomefile)

6. Importare i fogli dal file Excel in import-sheet.xlsm.

Per ogni foglio nelle cartelle di lavoro (nomefile). Fogli di lavoro
total = Workbooks("import-sheets.xlsm").Worksheets.count
Cartelle di lavoro(nomefile).Fogli di lavoro(foglio.Nome).Copia _
after:=Workbooks("import-sheets.xlsm").Fogli di lavoro(totale)
Foglio successivo

Spiegazione: la variabile total tiene traccia del numero totale di fogli di lavoro di import-sheet.xlsm. Usiamo il metodo Copy dell'oggetto Worksheet per copiare ogni foglio di lavoro e incollarlo dopo l'ultimo foglio di lavoro di import-sheets.xlsm.

7. Chiudere il file Excel.

Cartelle di lavoro (nomefile).Chiudi

8. La funzione Dir è una funzione speciale. Per ottenere gli altri file Excel, puoi utilizzare nuovamente la funzione Dir senza argomenti.

nomefile = 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.

9. Riattivare l'aggiornamento dello schermo e la visualizzazione degli avvisi (al di fuori del ciclo).

Application.ScreenUpdating = True
Application.DisplayAlerts = True

10. Testare il programma.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave