Im Folgenden sehen wir uns ein Programm in an Excel VBA das importiert Blätter aus anderen Excel-Dateien in eine Excel-Datei.
Laden Sie Book4.xlsx, Book5.xlsx herunter und fügen Sie sie zu "C:\test\" hinzu.
Lage:
Fügen Sie der Befehlsschaltfläche die folgenden Codezeilen hinzu:
1. Zuerst deklarieren wir zwei Variablen vom Typ String, ein Worksheet-Objekt und eine Variable vom Typ Integer.
Dim-Verzeichnis als String, fileName als String, Blatt als Arbeitsblatt, gesamt als Integer
2. Deaktivieren Sie die Bildschirmaktualisierung und die Anzeige von Warnungen.
Application.ScreenUpdating = False
Application.DisplayAlerts = False
3. Initialisieren Sie das Variablenverzeichnis. Wir verwenden die Dir-Funktion, um die erste *.xl?? Datei in diesem Verzeichnis gespeichert.
Verzeichnis = "c:\test\"
fileName = Dir(Verzeichnis & "*.xl??")
Hinweis: Die Dir-Funktion unterstützt die Verwendung von Platzhaltern mit mehreren Zeichen (*) und einzelnen Zeichen (?), um nach allen verschiedenen Arten von Excel-Dateien zu suchen.
4. Die Variable fileName enthält nun den Namen der ersten im Verzeichnis gefundenen Excel-Datei. Fügen Sie eine Do While-Schleife hinzu.
Do While Dateiname ""
Schleife
Fügen Sie der Schleife die folgenden Codezeilen (bei 5, 6, 7 und 8) hinzu.
5. Es gibt keine einfache Möglichkeit, Arbeitsblätter aus geschlossenen Excel-Dateien zu kopieren. Dazu öffnen wir die Excel-Datei.
Workbooks.Open (Verzeichnis & Dateiname)
6. Importieren Sie die Blätter aus der Excel-Datei in import-sheet.xlsm.
Für jedes Blatt in Arbeitsmappen(Dateiname).Arbeitsblätter
total = Workbooks("import-sheets.xlsm").Worksheets.count
Workbooks(fileName).Worksheets(sheet.Name).Copy _
after:=Workbooks("import-sheets.xlsm").Worksheets(total)
Nächstes Blatt
Erläuterung: Die Variable total verfolgt die Gesamtzahl der Arbeitsblätter von import-sheet.xlsm. Wir verwenden die Copy-Methode des Worksheet-Objekts, um jedes Arbeitsblatt zu kopieren und nach dem letzten Arbeitsblatt von import-sheets.xlsm einzufügen.
7. Schließen Sie die Excel-Datei.
Arbeitsmappen(Dateiname).Schließen
8. Die Dir-Funktion ist eine Sonderfunktion. Um die anderen Excel-Dateien abzurufen, können Sie die Dir-Funktion erneut ohne Argumente verwenden.
Dateiname = Dir()
Hinweis: Wenn keine Dateinamen mehr übereinstimmen, gibt die Dir-Funktion eine Zeichenfolge der Länge Null ("") zurück. Als Ergebnis verlässt Excel VBA die Do While-Schleife.
9. Aktivieren Sie die Bildschirmaktualisierung und die Anzeige von Warnungen wieder (außerhalb der Schleife).
Application.ScreenUpdating = True
Application.DisplayAlerts = True
10. Testen Sie das Programm.
Ergebnis: