Zum Hauptinhalt springen

Sortieren von Werten in VBA Excel: Die besten Methoden und Beispiele

Das Sortieren von Werten in Tabellen und Datenbereichen ist ein wesentlicher Bestandteil der Arbeit mit Tabellenkalkulationen in Excel. Die manuelle Sortierung kann jedoch sowohl mühsam als auch fehleranfällig sein. Stattdessen können Programmierer und Analysten Visual Basic for Applications (VBA) verwenden, um die Sortierung von Daten zu automatisieren.

Betrachten Sie in diesem Artikel einige der besten Methoden zum Sortieren von Werten in Excel VBA und stellen Sie für jede Methode Codebeispiele bereit. Eine Methode besteht darin, die Methode zu verwenden Sort ein Bereichsobjekt. Mit dieser Methode können Sie eine Sortierspalte und eine Sortierreihenfolge angeben und anschließend eine Sortierung durchführen.

Eine andere Methode, die als Methode bezeichnet wird SortByColumns, können Sie Werte gleichzeitig in mehrere Spalten sortieren. Mit dieser Methode können Sie auch die Sortierreihenfolge und zusätzliche Parameter angeben. Wir werden auch die Verwendung der Eigenschaft berücksichtigen Sort Bereichsobjekt zum Konfigurieren der Sortierung, Anwenden von Filtern und anderen Sortierungen.

Wenn Sie mit großen Datensätzen in Excel arbeiten und häufig sortieren, kann die Verwendung von VBA zur Automatisierung dieses Prozesses viel Zeit sparen und die Wahrscheinlichkeit von Fehlern reduzieren. Lesen Sie diesen Artikel weiter, um zu erfahren, wie Sie mit VBA Werte in Excel sortieren können!

Einfache Sortierung der Werte

Range("A1:B10").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes

Hier ist Range("A1:B10") ein Bereich von Werten, die sortiert werden müssen. Key1:=Range("A1") ist die Spalte, nach der sortiert werden soll. Order1:=xlAscending ist die Sortierreihenfolge (aufsteigend). Header:=xlYes - Gibt an, dass die Tabelle einen Header hat.

Wenn Sie die Werte in absteigender Reihenfolge sortieren möchten, ersetzen Sie Order1:=xlAscending durch Order1:=xlDescending:

Range("A1:B10").Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes

Sie können die Werte auch nach mehreren Spalten sortieren. Dazu müssen Sie eine Liste der Sortierschlüssel im Array übergeben:

Range("A1:B10").Sort Key1:=Range("A1"), Key2:=Range("B1"), Order1:=xlAscending, Order2:=xlAscending, Header:=xlYes

Hier ist Key1:=Range("A1") die erste Spalte zum Sortieren, Key2:=Range("B1") die zweite Spalte zum Sortieren, Order1:=xlAscending die Sortierreihenfolge nach der ersten Spalte, Order2:=xlAscending die Sortierreihenfolge nach der zweiten Spalte.

Auf diese Weise können Sie mit der Sort-Funktion die Werte in der Tabelle einfach und schnell in der gewünschten Reihenfolge sortieren.

Sortieren von Werten nach mehreren Spalten

In VBA Excel können Sie Werte gleichzeitig nach mehreren Spalten sortieren. Dadurch können Sie die Daten nach mehreren Kriterien sortieren und ein genaueres und strukturierteres Ergebnis erzielen.

Sie können die Sort-Methode des Range-Objekts verwenden, um Werte nach mehreren Spalten zu sortieren. Anwendungsbeispiel:

Sub SortMultipleColumns()Dim rng As RangeSet rng = Range("A1:D10")With rng.Sort Key1:=.Columns(1), Order1:=xlAscending, _Key2:=.Columns(2), Order2:=xlDescending, _Header:=xlYesEnd WithEnd Sub

In diesem Beispiel sortieren wir die Daten im Bereich A1:D10 für die erste Spalte in aufsteigender Reihenfolge und dann für die zweite Spalte in absteigender Reihenfolge. Mit dem Parameter Header geben wir an, dass sich die Spaltenüberschriften in der ersten Zeile befinden.

Wenn wir nach mehr als zwei Spalten sortieren müssen, können wir die Kette der Argumente Key und Order fortsetzen. Zum Beispiel:

Sub SortMultipleColumns()Dim rng As RangeSet rng = Range("A1:D10")With rng.Sort Key1:=.Columns(1), Order1:=xlAscending, _Key2:=.Columns(2), Order2:=xlDescending, _Key3:=.Columns(3), Order3:=xlAscending, _Header:=xlYesEnd WithEnd Sub

In diesem Beispiel sortieren wir die Daten nach der ersten Spalte in aufsteigender Reihenfolge, dann nach der zweiten Spalte in absteigender Reihenfolge und schließlich nach der dritten Spalte in aufsteigender Reihenfolge.

Wenn Sie Werte in mehrere Spalten sortieren, können Sie die Daten besser organisieren und die Suche nach Informationen erleichtern. Diese Methode ist besonders nützlich, wenn Daten anhand mehrerer Kriterien wie Datumsangaben, Zahlen, Textwerte und anderer sortiert werden müssen.

Sortieren von Werten nach speziellen Kriterien

Durch das Sortieren von Werten in Excel VBA können Sie die Daten in einer bestimmten Reihenfolge anordnen, z. B. in aufsteigender oder absteigender Reihenfolge. Manchmal ist es jedoch erforderlich, nach bestimmten Kriterien zu sortieren, die nicht mit normalen numerischen oder alphabetischen Werten übereinstimmen. In solchen Situationen können Sie spezielle Sortiermethoden verwenden.

Eine solche Methode besteht darin, die Werte gleichzeitig in mehrere Spalten zu sortieren. Wenn Sie beispielsweise die Daten nach dem Nachnamen eines Mitarbeiters und bei identischen Nachnamen nach dem Vornamen sortieren müssen, können Sie die kombinierte Sortierung verwenden. Dazu müssen Sie mehrere Spalten als Schlüssel zum Sortieren angeben.

Beispiel für die Sortierung nach mehreren Spalten:

.SortFields.Add Key:=Range("A1:A10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

.SortFields.Add Key:=Range("B1:B10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Eine weitere spezielle Sortiermethode ist das Sortieren nach einer bestimmten Reihenfolge von Werten. Wenn Sie beispielsweise die Liste der Monate in einer nicht standardmäßigen Reihenfolge sortieren müssen, können Sie eine benutzerdefinierte Funktion verwenden, um die Sortierreihenfolge anzugeben.

Beispiel für das Sortieren nach einer angegebenen Wertreihenfolge:

Funktion CustomSortOrder (ByVal Zelle als Bereich) Als Ganzzahl