/ / Soubory v adresáři v aplikaci Excel VBA

Soubory v adresáři v aplikaci Excel VBA

Níže se podíváme na program v Excel VBA že smyčky skrze všechny uzavřené sešity a pracovní listy v adresář, a zobrazí všechny názvy.

Stáhněte si Book1.xls, Book2.xls, Book3.xls, Book4.xls a Book5.xls a přidejte je do "C: test"

Situace:

Soubory v adresářovém příkladu

K příkazovému tlačítku přidejte následující řádky kódu:

1. Nejprve deklarujeme dvě proměnné typu String, objekt listu a dvě proměnné typu Integer.

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

2. Chcete-li zabránit blikání obrazovky, vypněte aktualizaci obrazovky.

Application.ScreenUpdating = False

3. Inicializujte adresář proměnných. Používáme funkci Dir k nalezení prvního * .xl? soubor uložený v tomto adresáři.

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

Poznámka: funkce Dir podporuje použití zástupných znaků (*) a jednopísmenných znaků (?) Pro hledání všech různých typů souborů aplikace Excel.

4. Proměnná fileName nyní obsahuje jméno prvního souboru Excel nalezeného v adresáři. Přidejte smyčku Do While Do.

Do While fileName <> ""

Loop

Do smyčky přidejte následující řádky kódu (na 5, 6, 7, 8 a 9).

5. Inicializujte proměnné typu Integer a přidejte název souboru Excel do prvního sloupce řádku i.

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

6. Neexistuje jednoduchý způsob, jak extrahovat data (nebo názvy listů) z uzavřených souborů aplikace Excel. Proto otevřete soubor aplikace Excel.

Workbooks.Open (directory & fileName)

7. Přidejte všechny názvy listů souboru Excel do ostatních sloupců řádku 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. Zavřete soubor aplikace Excel.

Workbooks(fileName).Close

9. Funkce Dir je speciální funkce. Chcete-li získat další soubory aplikace Excel, můžete znovu použít funkci Dir bez argumentů.

fileName = Dir()

Poznámka: Pokud se nezadávají žádné další názvy souborů, funkce Dir vrací řetězec s nulovou délkou (""). V důsledku toho aplikace Excel VBA opustí smyčku Do While.

10. Aktualizujte obrazovku znovu (mimo smyčku).

Application.ScreenUpdating = True

11. Otestujte program.

Výsledek:

Soubory v adresáři v aplikaci Excel VBA

Také si přečtěte: