Autofill mit einem Makro - VBA-Codebeispiele

Autofill in VBA

Dieser Artikel zeigt, wie Sie AutoFill in VBA verwenden.

AutoFill ist ein großartiges Werkzeug in Excel, wenn Daten sich wiederholen oder sequenziell sind (wie Wochentage, Daten, Monate des Jahres usw.). Normalerweise füllen wir die ersten paar Zellen mit den erforderlichen Daten und verwenden dann AutoFill, um die erforderlichen Daten in einen ausgewählten Bereich zu kopieren.

Dies alles kann mit einem VBA-Makro erfolgen.

AutoFill mit aufsteigenden Zahlen

Erstens können wir in unserem Code zwei Range-Variablen deklarieren.

Selection1 ist der Bereich mit den automatisch auszufüllenden Daten - zum Beispiel 1 und 2.

Auswahl2 ist die gesamte Bereich, der automatisch ausgefüllt werden soll, umfasst den ersten Bereich sowie die Leerzeichen, die automatisch ausgefüllt werden sollen.

Anschließend verwenden wir die AutoFill-Methode, um den zweiten Auswahlbereich zu füllen.

123456789101112131415 Öffentlicher Unterordner MyAutoFill()'von easyexcel.net'Bereichsvariablen deklarierenDim-Auswahl1 Als BereichDim-Auswahl2 als Bereich'Bereichsvariablen setzen = ihre jeweiligen BereicheSet selection1 = Sheet1.Range("A1:A2")Set selection2 = Sheet1.Range("A1:A12")'AutoFillselection1.AutoFill-Ziel:=selection2End Sub

Wir können dann das Makro zum Autofill-Bereich (A1: A12) ausführen.

Wenn wir die AutoFill-Methode verwenden, können wir den gewünschten Autofill-Typ auswählen. Im obigen Beispiel haben wir den Autofill-Typ nicht angegeben, was bedeutet, dass der Standardtyp verwendet wurde - in diesem Fall werden die Zahlen in jeder Zeile um 1 erhöht.

AutoFill mit Monaten

Das Makro zum automatischen Ausfüllen von Monaten ist mit einer wichtigen Ausnahme fast identisch mit dem Makro, das zum Erhöhen von Zahlen verwendet wird.

1234567891011 Öffentliche Unter AutoFillMonths()'von easyexcel.net'Bereichsvariablen deklarierenDim-Auswahl1 Als BereichDim-Auswahl2 als Bereich'Bereichsvariablen setzen = ihre jeweiligen BereicheSet selection1 = Sheet1.Range("A1:A2")Set selection2 = Sheet1.Range("A1:A12")'Monate automatisch ausfüllenAutoFill-Ziel:=selection2, Typ:=xlFillMonthsEnd Sub

Wenn wir den Autofill-Typ eingeben, erhalten wir eine Reihe von Excel-Konstanten zur Auswahl. Wenn wir dies weglassen, bestimmt Excel die Art der auszufüllenden Daten aus den angegebenen Originaldaten.

Excel kann jedoch Standardreihen wie Monate, Wochentage und inkrementelle Zahlen erfassen, ohne das Type-Argument 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 xlFillCopy-Konstante verwenden.

1234567 Öffentliche Unter AutoFillCopy()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Sheet1.Range("A1:A1")Set Selection2 = Sheet1.Range("A1:A12")Selection1.AutoFill Destination:=Selection2, Type:=xlFillCopyEnd Sub

Das Ausführen dieses Makros würde die Daten in Range("A1") nach unten in Range("A1:A12") kopieren, anstatt die Zellen automatisch mit nachfolgenden Monaten ab "Jan" zu füllen.

AutoFill mit xlFlashFill

Wenn wir in Excel Text in Spalten konvertieren müssen, können wir entweder die Option Text in Spalten oder eine Option namens Flash Fill verwenden. Dies ist in VBA äußerst nützlich.

Nehmen Sie zum Beispiel folgende Daten:

Wir können den Nachnamen „Tolley“ in Zelle B2 eingeben und dann ein Makro verwenden, um den Rest der Daten zu flashen.

1234567 Sub FlashFill()Dim Selection1 As RangeDim Selection2 As RangeSet Selection1 = Range("B2:B2")Set Selection2 = Range("B2:B15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillEnd Sub

Wir können dies dann in den Spalten C, D und E wiederholen, um die restlichen Daten zu erhalten.

1234567891011 Set Selection1 = Range("C2:C2")Set Selection2 = Range("C2:C15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillSet Selection1 = Range("D2:D2")Set Selection2 = Range("D2:D15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFillSet Selection1 = Range("E2:E2")Set Selection2 = Range("E2:E15")Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill

Jede Spalte wird dann basierend auf dem Wert in Zeile 2 mit den entsprechenden Daten gefüllt.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave