VBA-Sortierbereich

Excel VBA-Sortierbereich

Das Sortieren eines Bereichs in VBA erfolgt nach der range.sort-Methode. Dies ist eine Eigenschaft der range-Methode, mit der ein Benutzer einen Bereich nach Reihenfolge sortieren kann. Die Argumente für diese Funktion sind Key1, Order1, Key2, Type, Order2, Key3 , Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3, alle Argumente für diese Funktion sind optional.

Im Rahmen der Datenorganisation oder Datenstrukturierung ist es wichtig, die Daten zu sortieren und zu organisieren. Ähnliches gilt auch für VBA. Daher stellt sich bei neuen VBA-Lernenden häufig die Frage, wie wir diese Sortieroption als Teil der VBA-Automatisierung verwenden können. Dieser Artikel führt Sie ausführlich durch den VBA-Sortierbereich.

Mit Excel kennen wir alle die Option der Sortierung, die auf der Registerkarte DATEN verfügbar ist.

Sortieroption in VBA

Um die Sortieroption zu verwenden, müssen wir zuerst entscheiden, was unser Datenbereich ist, und denselben Datenbereich mithilfe des RANGE-Objekts in VBA erwähnen. Dann können nur wir auf die Option „Sortieren“ in VBA zugreifen. Angenommen, mein Datenbereich reicht von A1 bis D10, dann können wir den Datenbereich wie folgt bereitstellen.

Code:

 Sub Sort_Range_Example () Range ("A1: D10") End Sub 

Setzen Sie nun einen Punkt und wählen Sie die Methode „SORTIEREN“.

Code:

 Sub Sort_Range_Example () Range ("A1: D10"). Sort End Sub 

Nachfolgend finden Sie die Syntax der SORT-Bereichsmethode. Obwohl die Syntax unterschiedliche Argumente enthält, benötigen wir nicht alle für unsere VBA-Codierung, sodass wir nur wenige Elemente benötigen.

[Key1]: In dem Datenbereich, den wir sortieren, müssen wir angeben, welche Spalte sortiert werden soll. Wenn wir beispielsweise im Datenbereich von A1: D10 die Daten nach Spalte B sortieren möchten, ist [Schlüssel1] der Bereich („B1“) .

[Order1]: Die erwähnte Spalte im Argument [Key1] sollte in welcher Reihenfolge sortiert sein. Wir können hier zwei Optionen auswählen: "xlAscending" oder "xlDescending".

Header: Der erwähnte Datenbereich hat Header oder nicht, wenn ja, können wir "xlYes" oder "xlNo" angeben.

Beispiel für einen Sortierbereich in VBA

Nehmen wir das Beispiel eines Excel-VBA-Sortierbereichs, um dies besser zu verstehen.

Sie können diese VBA-Sortierbereich-Excel-Vorlage hier herunterladen - VBA-Sortierbereich-Excel-Vorlage

Schauen Sie sich zum Beispiel die folgende Datenstruktur an.

Wir haben Daten von A1 bis E17, daher werden wir die Daten zuerst nach "Land" sortieren. Führen Sie die folgenden Schritte aus, um den Code zum Sortieren der Daten zu schreiben.

Schritt 1: Starten Sie die Excel-Makroprozedur.

Code:

 Sub Sort_Range_Example () End Sub 

Schritt 2: Erwähnen Sie zuerst den Datenbereich mithilfe des RANGE- Objekts.

Code:

 Sub Sort_Range_Example () Range ("A1: E17") End Sub 

Schritt 3: Wählen Sie nun die Sortiermethode des Range-Objekts.

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort End Sub 

Schritt 4: Da wir die Daten nach "Land" sortieren, lautet unsere Argumentspalte für Schlüssel 1 "Bereich" ("B1").

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), End Sub 

Schritt 5: Sobald die erforderliche Spalte erwähnt ist, müssen wir angeben, in welcher Reihenfolge wir die Daten sortieren müssen, und "Order1" ist die Reihenfolge "xlAscending" .

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, End Sub 

Schritt 6: Unsere Daten haben Header, sodass der Header "xlYes" lautet.

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Header: = xlYes End Sub 

Wir haben alle Elemente erwähnt, die zum Sortieren der Daten erforderlich sind. Führen Sie den Code durch Drücken der Funktion und der Taste F5 aus und sehen Sie das Ergebnis.

Ausgabe:

Die Daten wurden nach Ländernamen in der Reihenfolge von A bis Z sortiert.

Nehmen wir nun an, wir müssen die Daten nach Ländern sortieren und den „ Bruttoumsatz “ vom höchsten zum niedrigsten sortieren . In solchen Fällen müssen wir auch die Argumente Key2 und Order2 verwenden.

Nachdem wir Key1 & Order1 erwähnt haben, wählen wir Key2.

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = End Sub 

Da wir die Daten über die „basieren Sortierung Bruttoumsatz “ Säule unseres Key2 Spaltenname Bereich wird ( „D1“).

Code:

 Sub Sort_Range_Example () Range ("A1: E17"). Sort Key1: = Range ("B1"), Order1: = xlAscending, Key2: = Range ("D1"), End Sub 

Once the Key2 is specified we need to decide on the sorting patter of whether it is ascending order or descending order in Order2 argument since we are sorting the sales value from largest to smallest we can choose “xlDescending” order.

Code:

 Sub Sort_Range_Example() Range("A1:E17").Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlDescending, Header:=xlYes End Sub 

After that mention the Header argument as “xlYes”. Now run the code and see what happens.

Output:

Previously it has sorted based only on “Country-wise” but this time it has sorted based on “Country-wise” first and then also on “Gross Sales” from highest to lowest.

Like this, we can use the “Sort” method in VBA to organize the data.

Things to Remember about Excel VBA Sort Range

  • The sort is a method available in VBA and to access this method we need to specify what the range of cells we are going to sort.
  • If the data range includes headers then we need to choose the header option as “xlYes”, if not we can choose “xlNo”.