VBA – Automatisches Ausfüllen mit Makro
In this Article
Dieser Artikel zeigt Ihnen, wie Sie AutoFill in VBA verwenden können.
Automatisches Ausfüllen in VBA
AutoFill ist ein großartiges Werkzeug in Excel, wenn sich Daten wiederholen oder wenn sie sequentiell (wie Wochentage, Datumsangaben, Monate des Jahres usw.) sind. Normalerweise würden wir die ersten paar Zellen mit den erforderlichen Daten füllen und dann AutoFill verwenden, um die erforderlichen Daten in einen ausgewählten Bereich zu kopieren.
All dies kann mit einem VBA-Makro durchgeführt werden.
AutoFill mit inkrementierten Zahlen
Zunächst können wir in unserem Code zwei Bereichsvariablen deklarieren.
Auswahl1 ist der Bereich mit den Daten, die automatisch ausgefüllt werden sollen (z. B. 1 und 2).
Auswahl2 ist der gesamte Bereich, der automatisch ausgefüllt werden soll, d. h. der erste Bereich plus die leeren Zellen, die automatisch ausgefüllt werden sollen.
Anschließend wird die AutoFill-Methode verwendet, um den zweiten Auswahlbereich zu füllen.
Public Sub MeinAutomatischesAusfuellen()
'Von AutomateExcel.com
'Bereichsvariablen deklarieren
Dim Auswahl1 As Range
Dim Auswahl2 As Range
'Set Bereichsvariablen = ihre jeweiligen Bereiche
Set Auswahl1 = Tabelle1.Range("A1:A2")
Set Auswahl2 = Tabelle1.Range("A1:A12")
'Automatisches Ausfüllen
Auswahl1.AutoFill Destination:=Auswahl2
End Sub
Anschließend können wir das Makro zum automatischen Ausfüllen des Bereichs (A1:A12) ausführen.
Wenn wir die AutoFill-Methode verwenden, können wir die Art des automatischen Ausfüllens, die wir durchführen möchten, auswählen. Im obigen Beispiel wurde die Art des automatischen Ausfüllens nicht angegeben, d. h. es wurde der Standardtyp verwendet. In diesem Fall werden die Zahlen in jeder Zeile um 1 erhöht.
Automatisches Ausfüllen mit Monaten
Das Makro zum automatischen Ausfüllen mit Monaten ist fast identisch mit dem einen zum Inkrementieren von Zahlen mit einer wichtigen Ausnahme.
Public Sub MonateAutomatischAusfuellen()
'von AutomateExcel.com
'Bereichsvariablen deklarieren
Dim Auswahl1 As Range
Dim Auswahl2 As Range
'Set Bereichsvariablen = ihre jeweiligen Bereiche
Set Auswahl1 = Tabelle1.Range("A1:A2")
Set Auswahl2 = Tabelle1.Range("A1:A12")
'Die Monate automatisch ausfüllen
AutoFill Destination:=Auswahl2, Type:=xlFillMonths
End Sub
Wenn wir die Art des automatischen Ausfüllens eingeben, erhalten wir eine Reihe von Excel-Konstanten zur Auswahl. Wenn wir dies weglassen, bestimmt Excel die Art der auszufüllenden Daten anhand der angegebenen Originaldaten.
Excel ist jedoch in der Lage, Standardreihen wie Monate, Wochentage und inkrementelle Zahlen zu übernehmen, ohne das Argument Type verwenden zu müssen.
AutoFill mit xlFillCopy
Wenn wir ein AutoFill-Makro verwenden möchten, um die Informationen in neue Zellen zu kopieren, können wir die Konstante xlFillCopy verwenden.
Public Sub AutomatischesAusfuellenKopieren()
Dim Auswahl1 As Range
Dim Auswahl2 As Range
Set Auswahl1 = Tabelle1.Range("A1:A1")
Set Auswahl2 = Tabelle1.Range("A1:A12")
Auswahl1.AutoFill Destination:=Auswahl2, Type:=xlFillCopy
End Sub
Wenn Sie dieses Makro ausführen, werden die Daten in Range(„A1“) nach unten in Range(„A1:A12“) kopiert, anstatt die Zellen automatisch mit den nachfolgenden Monaten ab „Jan“ auszufüllen.
AutoFill mit xlFlashFill
Wenn wir Text in Spalten in Excel umwandeln müssen, können wir entweder die Option Text in Spalten verwenden oder eine Option namens FlashFill nutzen. Dies ist in VBA äußerst nützlich.
Nehmen Sie zum Beispiel die folgenden Daten:
Wir können den Nachnamen „Tolley“ in Zelle B2 eingeben und dann ein Makro verwenden, um den Rest der Daten mit FlashFill auszufüllen.
Sub AusfuellenMitFlashFill()
Dim Auswahl1 As Range
Dim Auswahl2 As Range
Set Auswahl1 = Range("B2:B2")
Set Auswahl2 = Range("B2:B15")
Auswahl1.AutoFill Destination:=Auswahl2, Type:=xlFlashFill
End Sub
Wir können dies dann für die Spalten C, D und E wiederholen, um die restlichen Daten zu erhalten.
Set Auswahl1 = Range("C2:C2")
Set Auswahl2 = Range("C2:C15")
Auswahl1.AutoFill Destination:=Auswahl2, Type:=xlFlashFill
Set Auswahl1 = Range("D2:D2")
Set Auswahl2 = Range("D2:D15")
Auswahl1.AutoFill Destination:=Auswahl2, Type:=xlFlashFill
Set Auswahl1 = Range("E2:E2")
Set Auswahl2 = Range("E2:E15")
Auswahl1.AutoFill Destination:=Auswahl2, Type:=xlFlashFill
Jede Spalte wird dann auf der Grundlage des Wertes in Zeile 2 mit den entsprechenden Daten ausgefüllt.
VBA-Programmierung leicht gemacht
Suchen Sie nicht länger online nach VBA-Code. Erfahren Sie mehr über AutoMacro – einen VBA-Code-Generator, der es Anfängern ermöglicht, Prozeduren von Grund auf mit minimalen Programmierkenntnissen und mit vielen zeitsparenden Funktionen für alle Benutzer zu programmieren!