/ / Files hakemistossa Excel VBA: ssa

Excel VBA -hakemiston hakemistot

Alla tarkastelemme ohjelmaa Excel VBA että sulkee kaikki suljetut työkirjat ja laskentataulukot jonkin sisällä hakemisto, ja näyttää kaikki nimet.

Lataa Book1.xls, Book2.xls, Book3.xls, Book4.xls ja Book5.xls ja lisää ne "C: testiin"

Tilanne:

Directory-esimerkkitiedostot

Lisää komentoriviin seuraavat komentorivit:

1. Ensin mainostetaan kaksi tyypin String-muuttujaa, Worksheet -objekti ja kaksi tyypin Integer-muuttujaa.

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

2. Näytön välkkymisen välttämiseksi sammuta näytön päivitys.

Application.ScreenUpdating = False

3. Alusta muuttujan hakemisto. Käytämme Dir-toimintoa löytää ensimmäinen * .xl? tiedosto tallennetaan tähän hakemistoon.

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

Huomaa: Dir-toiminto tukee useiden merkkien (*) ja yksittäisten merkkien (?) Käyttöä kaikkien Excel-tiedostojen etsimiseen.

4. Muuttuva tiedostonimi on nyt hakemiston ensimmäisen Excel-tiedoston nimi. Lisää Do While Loop.

Do While fileName <> ""

Loop

Lisää silmukkaan viivat (5, 6, 7, 8 ja 9).

5. Alusta tyypin Integer-muuttujat ja lisää Excel-tiedoston nimi rivin i ensimmäiseen sarakkeeseen.

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

6. Ei ole yksinkertaista tapaa poistaa tietoja (tai arkin nimiä) suljetuista Excel-tiedostoista. Siksi avaamme Excel-tiedoston.

Workbooks.Open (directory & fileName)

7. Lisää kaikki Excel-tiedoston arkin nimet riveen i muihin sarakkeisiin.

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. Sulje Excel-tiedosto.

Workbooks(fileName).Close

9. Dir-toiminto on erikoistoiminto. Jos haluat saada muut Excel-tiedostot, voit käyttää Dir-funktiota uudelleen ilman argumentteja.

fileName = Dir()

Huomaa: kun tiedostonimiä ei enää ole, Dir-funktio palauttaa nollan pituisen merkkijonon (""). Tämän seurauksena Excel VBA jättää Do Whilein silmukan.

10. Käynnistä näytön päivitys uudelleen (silmukan ulkopuolella).

Application.ScreenUpdating = True

11. Testaa ohjelma.

Tulos:

Excel VBA -hakemiston hakemistot

Lue myös: