Import Blätter mit Excel VBA
Im Folgenden, dass die Einfuhren Blätter aus anderen Excel-Dateien in eine Excel-Datei in einem Programm in Excel VBA aussehen werde.
Herunterladen Book4.xlsx, Book5.xlsx und fügen Sie sie in „C: \ test \“
Situation:
Fügen Sie die folgenden Codezeilen in die Befehlsschaltfläche:
-
Zuerst erklären wir zwei Variablen vom Typ String, ein Arbeitsblatt-Objekt und eine Variable vom Typ Integer.
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Schalten Sie die Bildschirmaktualisierung und Anzeigen von Warnungen 2..
Application.ScreenUpdating = False Application.DisplayAlerts = False
-
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.
-
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 und 8) an die Schleife.
-
Es gibt keine einfache Möglichkeit, Arbeitsblätter aus geschlossen Excel-Dateien zu kopieren.
Deshalb öffnen wir die Excel-Datei.
Workbooks.Open (directory & fileName)
-
Importieren Sie die Blätter aus der Excel-Datei in Import-sheet.xlsm.
For Each sheet In Workbooks(fileName).Worksheets total = Workbooks("import-sheets.xlsm").Worksheets.count Workbooks(fileName).Worksheets(sheet.Name).Copy _ after:=Workbooks("import-sheets.xlsm").Worksheets(total) Next sheet
Erläuterung: die Variable insgesamt hält den Überblick über die Gesamtzahl der Arbeitsblätter von Import-sheet.xlsm. Wir verwenden die Copy-Methode des Worksheet-Objekts jedes Arbeitsblatt zu kopieren und nach dem letzten Arbeitsblatt von Import-sheets.xlsm einfügen.
-
Schließen Sie die Excel-Datei.
Workbooks(fileName).Close
-
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.
-
Schalten Sie die Bildschirmaktualisierung und Anzeigen von Warnungen wieder (außerhalb der Schleife).
Application.ScreenUpdating = True Application.DisplayAlerts = True
-
Testen Sie das Programm.
Ergebnis: