300 Exempel

Filer i en katalog

Files Directory

Nedan kommer vi att titta på ett program i Excel VBA den där går igenom alla stängda arbetsböcker och kalkylblad i en katalog och visar alla namn.





Ladda ner Book1.xlsx, Book2.xlsx, Book3.xlsx, Book4.xlsx och Book5.xlsx och lägg dem till 'C: test '

Situation:





Filer i ett katalogexempel

Lägg till följande kodrader till kommandoknappen:



1. Först deklarerar vi två variabler av typen String, ett kalkylbladsobjekt och två variabler av typen Heltal.

IngenkatalogSom Sträng, filnamnSom Sträng, arkSomArbetsblad, iSom Heltal, jSom Heltal

2. För att undvika skärmflimmer, stäng av skärmuppdatering.

Application.ScreenUpdating =Falsk

3. Initiera variabelkatalogen. Vi använder Dir -funktionen för att hitta den första *.xl ?? filen lagrad i den här katalogen.

katalog = 'c: test '
fileName = Dir (katalog & '*.xl ??')

Obs! Dir -funktionen stöder användningen av jokertecken med flera tecken (*) och enstaka tecken (?) För att söka efter alla olika typer av Excel -filer.

4. Variabeln fileName innehåller nu namnet på den första Excel -filen som finns i katalogen. Lägg till en Gör medan loop .

Do Medanfilnamn ''

Slinga

Lägg till följande kodrader (vid 5, 6, 7, 8 och 9) till slingan.

5. Initiera variablerna av typen Heltal och lägg till namnet på Excel -filen i den första kolumnen i rad i.

i = i + 1
j = 2
Celler (i, 1) = filnamn

6. Det finns inget enkelt sätt att extrahera data (eller bladnamn) från slutna Excel -filer. Därför öppnar vi Excel -filen.

Workbooks.Open (katalog och filnamn)

7. Lägg till alla arknamn för Excel -filen i de andra kolumnerna i rad i.

För VarjearkIArbetsböcker (filnamn). Arbetsblad
Arbetsböcker ('files-in-a-directory.xlsm'). Arbetsblad (1). Celler (i, j) .Value = sheet.Name
j = j + 1
Nästaark

8. Stäng Excel -filen.

Arbetsböcker (filnamn) .Stäng

9. Dir -funktionen är en speciell funktion. För att få de andra Excel -filerna kan du använda Dir -funktionen igen utan argument.

skapa en vlookup-formel i Excel
fileName = Dir ()

Obs! När inga fler filnamn matchar returnerar Dir-funktionen en sträng med noll längd (''). Som ett resultat kommer Excel VBA att lämna Do While -slingan.

10. Slå på skärmuppdateringen igen (utanför slingan).

Application.ScreenUpdating =Sann

11. Testa programmet.

Resultat:

Filer i en katalog i Excel VBA

6/8 klar! Läs mer om böcker och blad>
Gå till nästa kapitel: Områdeobjekt



^