Im Folgenden werden wir ein Programm in Excel VBA suchen, die durch alle geschlossenen Arbeitsmappen und Arbeitsblätter in einem Verzeichnis Schleifen und zeigt alle Namen.

Herunterladen Book1.xlsx, Book2.xlsx, Book3.xlsx, Book4.xlsx und Book5.xlsx und fügen Sie sie in „C: \ test \“

Situation:

Files in a Directory Example

Fügen Sie die folgenden Codezeilen in die Befehlsschaltfläche:

  1. Zuerst erklären wir zwei Variablen vom Typ String, ein Objekt Arbeitsblatt und zwei Variablen vom Typ Integer.

Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
  1. Um Bildschirm flimmern, schalten Sie die Bildschirmaktualisierung zu vermeiden.

Application.ScreenUpdating = False
  1. Initialisieren der variable Verzeichnis. Wir verwenden die Funktion Dir die erste .xl zu finden ?? Datei in diesem Verzeichnis gespeichert.

directory = "c:\test\"

fileName = Dir(directory & ".xl??")

Hinweis: (?) Die Dir-Funktion unterstützt die Verwendung von Mehrfach-Zeichen (*) und Einzelzeichen-Platzhalter für alle verschiedene Arten von Excel-Dateien zu suchen.

  1. Die Variable filename hält nun den Namen der ersten Excel-Datei im Verzeichnis. Fügen Sie eine Do While-Schleife.

Do While fileName <> ""

Loop

Fügen Sie die folgenden Codezeilen (bei 5, 6, 7, 8 und 9) an die Schleife.

  1. Initialisieren der Variablen vom Typ Integer und den Namen der Datei, in der ersten Spalte der Zeile i Excel hinzuzufügen.

i = i + 1

j = 2

Cells(i, 1) = fileName
  1. Es gibt keine einfache Möglichkeit, Daten extrahieren (oder Blattnamen) aus geschlossen Excel-Dateien. Deshalb öffnen wir die Excel-Datei.

Workbooks.Open (directory & fileName)
  1. Fügen Sie die Blattnamen der Excel-Datei, die alle zu den anderen Spalten der Zeile i.

For Each sheet In Workbooks(fileName).Worksheets

Workbooks("files-in-a-directory.xlsm").Worksheets(1).Cells(i, j).Value = sheet.Name

j = j + 1

Next sheet
  1. Schließen Sie die Excel-Datei.

Workbooks(fileName).Close
  1. Die Dir-Funktion ist eine spezielle Funktion. Um die anderen Excel-Dateien zu erhalten, können Sie die Dir-Funktion verwenden, wieder ohne Argumente.

fileName = Dir()

Hinweis: Wenn keine weiteren Dateinamen übereinstimmen, die Dir-Funktion gibt eine leere Zeichenfolge ( „“). Als Ergebnis wird Excel VBA die Do While-Schleife verlassen.

  1. Drehen auf dem Bildschirm der Aktualisierung wieder (außerhalb der Schleife).

Application.ScreenUpdating = True
  1. Testen Sie das Programm.

Ergebnis:

Files in a Directory in Excel VBA