/ / Fișiere într-un director în Excel VBA

Fișiere într-un director în Excel VBA

Mai jos ne vom uita la un program în Excel VBA acea buclele prin toate registrele de lucru închise și foile de lucru în a director, și afișează toate numele.

Descărcați Book1.xls, Book2.xls, Book3.xls, Book4.xls și Book5.xls și adăugați-le la "C: test"

Situatie:

Fișiere într-un exemplu de director

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 din foaia de lucru și două variabile de tip Integer.

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

2. Pentru a evita pâlpâirea ecranului, opriți actualizarea ecranului.

Application.ScreenUpdating = False

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

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

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

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

Do While fileName <> ""

Loop

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

5. Inițializați variabilele de tip Integer și adăugați numele fișierului Excel la prima coloană a rândului i.

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

6. Nu există o modalitate simplă de a extrage date (sau nume de foi) din fișiere Excel închise. Prin urmare, deschidem fișierul Excel.

Workbooks.Open (directory & fileName)

7. Adăugați toate numele foilor fișierului Excel la celelalte coloane ale rândului 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. Închideți fișierul Excel.

Workbooks(fileName).Close

9. 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ă: atunci când nu se mai potrivesc nume de fișiere, funcția Dir returnează un șir de lungime zero (""). Ca rezultat, Excel VBA va părăsi bucla Do While.

10. Activați din nou actualizarea ecranului (în afara bucla).

Application.ScreenUpdating = True

11. Testați programul.

Rezultat:

Fișiere într-un director în Excel VBA

De asemenea, citiți: