Importați foi folosind Excel VBA - Macro Excel ușor

Cuprins

Mai jos vom analiza un program în Excel VBA acea importă foi din alte fișiere Excel într-un singur fișier Excel.

Descărcați Book4.xlsx, Book5.xlsx și adăugați-le la „C: \ test \”

Situatie:

Adăugați următoarele linii de cod la butonul de comandă:

1. În primul rând, declarăm două variabile de tip String, un obiect Foaie de lucru și o variabilă de tip Integer.

Dim director As String, fileName As String, foaie As Sheet, total As Integer

2. Opriți actualizarea ecranului și afișarea alertelor.

Application.ScreenUpdating = Fals
Application.DisplayAlerts = Fals

3. Inițializați directorul variabilelor. Folosim funcția Dir pentru a găsi primul * .xl ?? fișier stocat în acest director.

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

Notă: Funcția Dir acceptă utilizarea de metacaractere cu mai multe caractere (*) și un singur caracter (?) Pentru a căuta toate tipurile diferite de fișiere Excel.

4. Variabila fileName deține acum numele primului fișier Excel găsit în director. Adăugați o buclă Do While.

Faceți în timp ce numele fișierului ""
Buclă

Adăugați următoarele linii de cod (la 5, 6, 7 și 8) la buclă.

5. Nu există o modalitate simplă de a copia foi de lucru din fișiere Excel închise. Prin urmare, deschidem fișierul Excel.

Cărți de lucru.Open (director & fișierNume)

6. Importați foile din fișierul Excel în import-sheet.xlsm.

Pentru fiecare foaie din registrele de lucru (fileName). Foi de lucru
total = Cărți de lucru ("import-sheets.xlsm"). Worksheets.count
Cărți de lucru (fileName). Foi de lucru (sheet.Name) .Copy _
after: = Cărți de lucru ("import-sheets.xlsm"). Foi de lucru (total)
Foaia următoare

Explicație: variabila total ține evidența numărului total de foi de lucru din import-sheet.xlsm. Folosim metoda de copiere a obiectului Foaie de lucru pentru a copia fiecare foaie de lucru și a o lipi după ultima foaie de lucru din import-sheets.xlsm.

7. Închideți fișierul Excel.

Cărți de lucru (fileName). Închideți

8. Funcția Dir este o funcție specială. Pentru a obține celelalte fișiere Excel, puteți utiliza din nou funcția Dir, fără argumente.

fileName = Dir ()

Notă: Când nu se mai potrivesc nume de fișiere, funcția Dir returnează un șir de lungime zero (""). Ca urmare, Excel VBA va părăsi bucla Do While.

9. Porniți actualizarea ecranului și afișarea din nou a alertelor (în afara buclei).

Application.ScreenUpdating = Adevărat
Application.DisplayAlerts = Adevărat

10. Testați programul.

Rezultat:

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave