VBA – Automatisches Ausfüllen mit Makro

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 22, 2022

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.

vba zahlen automatisch ausfuellen

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.

automatisches ausfuellen typ festlegen

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.

automatisches ausfuellen typ xlFillCopy

 

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:

automatisches ausfuellen typ xlFlashFill ausgangsdaten

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

automatisches ausfuellen typ xlFlashFill ergebnis

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.

automatisches ausfuellen typ xlFlashFill mehrfach

 

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!

automacro uebersicht for each ws in worksheets
Mehr erfahren!

vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples