/ Súbory v adresári v programe Excel VBA

Súbory v adresári v programe Excel VBA

Nižšie sa pozrieme na program v sekcii Excel VBA že slučky cez všetky uzavreté zošity a pracovné listy v adresár, a zobrazí všetky mená.

Stiahnite si Book1.xls, Book2.xls, Book3.xls, Book4.xls a Book5.xls a pridajte ich do "C: test"

situácie:

Súbory v príklade adresára

Do príkazového tlačidla pridajte nasledujúce riadky kódu:

1. Najprv deklarujeme dve premenné typu String, objekt pracovného hárka a dve premenné typu Integer.

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

2. Ak chcete zabrániť blikaniu obrazovky, vypnite aktualizáciu obrazovky.

Application.ScreenUpdating = False

3. Inicializujte premenný adresár. Používame funkciu Dir na nájdenie prvého * .xl? súbor uložený v tomto adresári.

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

Poznámka: funkcia Dir podporuje použitie zástupných znakov (*) a jedného znaku (?) Na vyhľadávanie všetkých rôznych typov súborov programu Excel.

4. Premenná fileName teraz obsahuje meno prvého súboru programu Excel nájdeného v adresári. Pridajte funkciu Do While Loop.

Do While fileName <> ""

Loop

Do slučky pridajte nasledujúce riadky kódu (na 5, 6, 7, 8 a 9).

5. Inicializujte premenné typu Integer a pridajte názov súboru Excel do prvého stĺpca riadka i.

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

6. Nie je jednoduchý spôsob, ako extrahovať dáta (alebo názvy listov) z uzavretých súborov programu Excel. Preto otvoríme súbor programu Excel.

Workbooks.Open (directory & fileName)

7. Pridajte všetky hárky súboru programu Excel do ostatných stĺpcov riadka 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. Zatvorte súbor programu Excel.

Workbooks(fileName).Close

9. Funkcia Dir je špeciálna funkcia. Ak chcete získať ďalšie súbory programu Excel, môžete použiť funkciu Dir znova bez argumentov.

fileName = Dir()

Poznámka: ak sa nezhodujú žiadne názvy súborov, funkcia Dir vráti reťazec s nulovou dĺžkou (""). Výsledkom je, že program Excel VBA opustí cyklus Do While.

10. Opätovne zapnite aktualizáciu obrazovky (mimo slučky).

Application.ScreenUpdating = True

11. Otestujte program.

výsledok:

Súbory v adresári v programe Excel VBA

Tiež si prečítajte: