/ / Filer i et katalog i Excel VBA

Filer i et katalog i Excel VBA

Nedenfor ser vi på et program i Excel VBA at løkker gjennom alle lukkede arbeidsbøker og regneark i en katalog, og viser alle navnene.

Last ned Book1.xls, Book2.xls, Book3.xls, Book4.xls og Book5.xls og legg dem til "C: test"

Situasjon:

Filer i et katalogeksempel

Legg til følgende kodelinjer på kommandoknappen:

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

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

2. Slå av skjermoppdatering for å unngå skjermflimmer.

Application.ScreenUpdating = False

3. Initialiser den variable katalogen. Vi bruker Dir-funksjonen for å finne den første * .xl ?? filen lagret i denne katalogen.

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

Merk: Dir-funksjonen støtter bruk av flere tegn (*) og enkelt tegn (?) Jokertegn for å søke etter alle forskjellige Excel-filer.

4. Den variable filnavnet inneholder nå navnet på den første Excel-filen som finnes i katalogen. Legg til en Do While Loop.

Do While fileName <> ""

Loop

Legg til følgende kodelinjer (ved 5, 6, 7, 8 og 9) til løkken.

5. Initialiser variablene av typen Integer og legg navnet på Excel-filen til den første kolonnen i rad i.

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

6. Det er ingen enkel måte å pakke ut data (eller arknavn) fra lukkede Excel-filer. Derfor åpner vi Excel-filen.

Workbooks.Open (directory & fileName)

7. Legg til alle arknavnene i Excel-filen til de andre kolonnene i rad 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. Lukk Excel-filen.

Workbooks(fileName).Close

9. Dir-funksjonen er en spesialfunksjon. For å få de andre Excel-filene, kan du bruke Dir-funksjonen igjen uten argumenter.

fileName = Dir()

Merk: Når ikke flere filnavn matcher, returnerer Dir-funksjonen en nulllengdesnor (""). Som et resultat vil Excel VBA forlate Do While-sløyfen.

10. Slå på skjermoppdateringen igjen (utenfor loop).

Application.ScreenUpdating = True

11. Test programmet.

Resultat:

Filer i et katalog i Excel VBA

Les også: