/ / Filer i et katalog i Excel VBA

Filer i et katalog i Excel VBA

Nedenfor vil vi se på et program i Excel VBA at sløjfer gennem alle lukkede arbejdsbøger og regneark i en vejviser, og viser alle navne.

Download Book1.xls, Book2.xls, Book3.xls, Book4.xls og Book5.xls og tilføj dem til "C: test"

Situation:

Filer i et katalogeksempel

Tilføj følgende kodelinjer til kommandoknappen:

1. Først erklærer vi to variabler af typen String, et regnearkobjekt og to variabler af typen Integer.

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

2. For at undgå skærmflimmer skal du slukke for skærmopdatering.

Application.ScreenUpdating = False

3. Initialiser den variable katalog. Vi bruger Dir-funktionen til at finde den første * .xl ?? fil gemt i denne mappe.

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

Bemærk: Dir-funktionen understøtter brugen af ​​jokertegn med flere tegn (*) og enkelt tegn (?) For at søge efter alle forskellige typer Excel-filer.

4. Den variable filnavn indeholder nu navnet på den første Excel-fil, der findes i mappen. Tilføj en Do While Loop.

Do While fileName <> ""

Loop

Tilføj følgende kode linjer (ved 5, 6, 7, 8 og 9) til sløjfen.

5. Initialiser variablerne af typen Integer og tilføj navnet på Excel-filen til den første kolonne i række i.

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

6. Der er ingen enkel måde at udtrække data (eller arknavne) fra lukkede Excel-filer på. Derfor åbner vi Excel-filen.

Workbooks.Open (directory & fileName)

7. Tilføj alle arknavne i Excel-filen til de andre kolonner i række 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. Luk Excel-filen.

Workbooks(fileName).Close

9. Dir-funktionen er en speciel funktion. For at få de andre Excel-filer, kan du bruge Dir-funktionen igen uden argumenter.

fileName = Dir()

Bemærk: Når der ikke matches flere filnavne, returnerer funktionen Dir en nullængdesnor (""). Som et resultat vil Excel VBA forlade Do While loop.

10. Tænd for skærmopdatering igen (uden for sløjfen).

Application.ScreenUpdating = True

11. Test programmet.

Resultat:

Filer i et katalog i Excel VBA

Læs også: