Excel VBA ist ein integraler Bestandteil der Excel-Automatisierung, und die Verwendung und Vorteile von VBA können nicht untergraben werden. Wenn Sie sich in einem schwierigen Kampf befinden, um mehrere Blätter und Arbeitsmappen in Excel zu konsolidieren, sind wir hier, um Ihnen zu helfen.
Die in diesem Handbuch erwähnten Makros helfen Ihnen, die scheinbar unüberwindbare Aufgabe in Sekunden (oder Minuten, wenn die Datenbestände groß sind) zu erledigen.
Wenn Sie diesem Tutorial folgen, erstellen Sie Ihr eigenes VBA-Makro in Excel und führen mehrere Blätter effizient in einer einzigen Datei zusammen.
Zusammenführen mehrerer Excel-Tabellen zu einer Datei
Für diese Aufgabe werden die Daten in den folgenden Blättern gespeichert:
- Blatt1
- Blatt2
- Blatt3
Die oben aufgeführten Blattnamen dienen nur zur Veranschaulichung. Dieses VBA-Makro ist generisch und hängt nicht von den Blattnamen ab. Sie können den Code anpassen, um ihn mit beliebigen Tabellennamen zu verwenden.
Voraussetzungen für die Ausführung des Codes
Es gibt einige Voraussetzungen für die Ausführung des unten aufgeführten VBA-Codes.
Sie müssen den Makrocode in einer neuen Excel-Datei speichern. Speichern Sie diese Arbeitsmappe mit a .xlsm Verlängerung. Sie können die VBA-Makroarbeitsmappe unter einem beliebigen Namen speichern.
Öffnen Sie eine neue Excel-Datei; Drücken Sie Alt + F11 auf Ihrer Tastatur, um den Excel VBA-Editor zu öffnen. Sobald der Editor geöffnet ist, fügen Sie ein neues Codemodul hinzu, indem Sie auf das Einfügung Registerkarte oben. Wählen Modul um ein neues Modul einzufügen; Hier geben Sie den unten angegebenen VBA-Makrocode ein.
Die zu konsolidierenden Datenblätter sollten sich insgesamt in einer anderen separaten Arbeitsmappe befinden. Der Name der Arbeitsmappe und der Blätter kann beliebig gewählt werden.
Sobald Sie den VBA-Code ausführen, durchläuft das VBA-Makro jedes verfügbare Arbeitsblatt im primäre Arbeitsmappe (Datenarbeitsmappe) und fügen Sie den Inhalt in ein neu hinzugefügtes Blatt innerhalb derselben ein Arbeitsmappe.
Die konsolidierten Daten werden in dem genannten Blatt verfügbar sein Konsolidiert.
Ausführen des VBA-Codes
Es ist Zeit, den neu gespeicherten Makrocode auszuführen. Kopieren Sie diesen Code und fügen Sie ihn in das Modul des VBA-Editors ein:
Unter consolidate_shts()
'deklarieren Sie die verschiedenen im Code verwendeten Variablen und die vba-Datentypen
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'Bildschirmflackern und Warn-Popups während der Ausführung deaktivieren
Mit Bewerbung
.ScreenUpdating = False
.DisplayAlerts = False
Ende mit
'den Namen der primären Arbeitsmappe in einer Makrovariablen speichern. Ersetzen Sie Test.xlsx durch den Namen Ihrer primären Arbeitsmappe
Set wbk1 = Workbooks("Test.xlsx")
'Aktivieren Sie die Arbeitsmappe, bevor Sie die Funktion(en) darauf ausführen
wbk1.Aktivieren
'Führen Sie eine vba-for-Schleife aus, um zu überprüfen, ob bereits ein konsolidiertes Blatt vorhanden ist. Wenn es existiert, wird es von der for-Schleife gelöscht.
Für jede sht in wbk1.Sheets
Wenn sch. Name = "Konsolidiert" Dann sht. Löschen
Nächster sht
'Fügen Sie ein neues Blatt hinzu, um die neu konsolidierten Daten zu speichern
Arbeitsblätter. Hinzufügen. Name = "Konsolidiert"
'Fügen Sie jeder einzelnen Spalte innerhalb des konsolidierten Blatts einige Überschriften hinzu
Mit Sheets("Konsolidiert")
.Range("a1").Value = "Bestelldatum"
.Range("b1").Value = "Region"
.Range("c1").Value = "Rep"
.Range("d1").Value = "Item"
.Range("e1").Value = "Einheiten"
.Range("f1").Value = "UnitCost"
.Range("g1").Value = "Total"Ende mit
'Das neu erstellte konsolidierte Blatt enthält die konsolidierten Daten aus jedem einzelnen Blatt in der primären Arbeitsmappe.Für i = 1 Zu wbk1.Worksheets. Zählen
Wenn Blätter (i).Name <> "Konsolidiert" Then
'Erfassen Sie die letzte ausgefüllte Zeile aus den Datenblättern in der Arbeitsmappe
lastrow = Sheets (i).Range("a1").End (xlDown).Row
'Erfassen der letzten ausgefüllten Zeile im konsolidierten Arbeitsblatt
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1'Daten aus Quellblatt kopieren und in das konsolidierte Blatt einfügen
Sheets (i).Range("a2:g" & lastrow).Copy Destination:=Sheets("Consolidated").Range("a" & lastrow1)
Ende, wenn
Als nächstes
'Excel VBA-Funktionen für die zukünftige Verwendung aktivieren
Mit Bewerbung
.ScreenUpdating = True
.DisplayAlerts = True
Ende mit
End Sub
Der VBA-Code erklärt
Deklarieren Sie zunächst alle Variablen, die Sie im Code verwenden, und weisen Sie ihnen die richtigen VBA-Datentypen zu, damit der Code reibungslos ausgeführt wird.
Nachdem Sie die Variablen deklariert haben, ist eine grundlegende Verwaltung erforderlich. Dies geschieht durch Deaktivieren des Bildschirmflimmerns und Unterdrücken von Popup-Warnungen. Wenn Sie beispielsweise ein vorhandenes Blatt mithilfe des VBA-Codes löschen, fordert eine Eingabeaufforderung in Excel zur Bestätigung auf, bevor das Blatt gelöscht wird. Aufforderungen wie diese werden unterdrückt, um die Ausführungsgeschwindigkeit zu erhöhen.
Im nächsten Schritt müssen Sie den Namen der Arbeitsmappe definieren, die alle Ihre Daten enthält. Ersetzen Test.xlsx mit dem Namen und der Erweiterung Ihres Arbeitsmappennamens. Stellen Sie sicher, dass Sie den Namen in Anführungszeichen setzen.
Aktivieren Sie die primäre Arbeitsmappe und löschen Sie alle vorhandenen Blätter mit dem Namen Konsolidiert alle zuvor gespeicherten Daten zu löschen. Der VBA-Code schaltet durch jedes Blatt und sobald er auf den Blattnamen stößt Konsolidiert es wird es löschen. Dies geschieht mit dem VBA IF-Anweisung, das auf logische Bedingungen prüft und das Blatt löscht, sobald die Bedingung erfüllt ist.
Der primären Arbeitsmappe wird ein neues Blatt hinzugefügt, um die konsolidierten Daten zu speichern. Anschließend werden diesem Blatt vorformatierte, standardisierte Kopfzeilen hinzugefügt. Sie können die Werte der Titel (Spaltenüberschriften) ändern, indem Sie die Informationen neben den Zellbezügen in Anführungszeichen aktualisieren.
Beispielsweise: .Range("a1") = "Bestelldatum" kann ersetzt werden durch .Range("a1") = "Bestellnummer"
Als nächstes schaltet eine VBA FOR-Schleife durch jedes Arbeitsblatt, kopiert den Inhalt des Blattes und fügt den Inhalt in das Konsolidiert Arbeitsblatt, bevor Sie zum nächsten Blatt in der Arbeitsmappe wechseln. Dieser Vorgang wiederholt sich, bis alle Blätter kopiert sind.
Während dieses Vorgangs werden alle Zeilen automatisch berechnet und in das konsolidierte Blatt eingefügt. Die letzte gefüllte Zeile wird automatisch berechnet, bevor die Daten eingefügt werden. Das Makro ist dynamisch und kann sich an unterschiedliche Datenzeilen in jedem Arbeitsblatt anpassen.
Verwandt: Erweiterte Microsoft Excel-Funktionen, die Sie kennen müssen
Nachdem die Daten aus allen Blättern in das Hauptkonsolidierungsblatt eingefügt wurden, wechselt das Makro zum letzten Abschnitt des Codes. Die anfangs deaktivierten VBA-Funktionen werden für die zukünftige Verwendung wieder aktiviert.
Konsolidieren mehrerer Blätter mit Excel VBA-Makro
Excel VBA ist eine überflüssige Programmiersprache, die mit allen Excel-Komponenten gut funktioniert. Jedes Stück Code ist wichtig, und es ist wichtig, sich daran zu erinnern, dass die Ausführung von einem zeilenweisen Ausführungssystem abhängt, daher sollten Sie die Reihenfolge der Codezeilen nicht ändern.
Um den Code an Ihre Anforderungen anzupassen, können Sie die erforderlichen Änderungen vornehmen und diesen Code ausführen, um die Daten in Sekundenschnelle effizient und effektiv zu konsolidieren.
Machen Sie die Datenverwaltung mit diesen Excel-Makros zum Kinderspiel.
Weiter lesen
- Programmierung
- Microsoft Excel
- Makros
- Programmierung
Gaurav Siyal verfügt über zwei Jahre Erfahrung im Schreiben von Dokumenten für eine Reihe von digitalen Marketingfirmen und Software-Lebenszyklusdokumenten.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren