Sortieren Sie den Datenbereich nach einer bestimmten Spalte in Excel VBA

Iqra Hasnain 15 Februar 2024
  1. Sortieren Sie den Datenbereich nach einer bestimmten Spalte in VBA
  2. Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit der Methode Range.Sort() in VBA
  3. Sortieren Sie den Datenbereich nach einer bestimmten Spalte, indem Sie ein Makro in VBA aufzeichnen
  4. Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der einstufigen Sortierung in VBA
  5. Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der mehrstufigen Sortierung in VBA
  6. Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit verschiedenen Parametern in VBA
Sortieren Sie den Datenbereich nach einer bestimmten Spalte in Excel VBA

Wir werden verschiedene Methoden vorstellen, um einen Datenbereich nach einer bestimmten Spalte in Excel VBA zu sortieren.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte in VBA

Excel verfügt über integrierte Funktionen zum Sortieren der im Menüband und im Dialogfeld Sortieren verfügbaren Daten. Möglicherweise müssen wir jedoch VBA verwenden, um Daten zu sortieren, wenn das Sortieren von Daten beim Codieren erforderlich ist.

Wir können viel Zeit und Energie sparen, indem wir ein Makro für den Sortierprozess bestimmter Daten erstellen. Macro ermöglicht es uns, den gesamten Vorgang mit einem einzigen Klick durchzuführen.

Die Datensortierung kann mit mehreren Techniken erfolgen, und wir können eine für unsere Daten geeignete Methode auswählen. Wir werden diese Methoden in den folgenden Abschnitten einzeln besprechen.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit der Methode Range.Sort() in VBA

Die Methode Range.Sort() kann Daten in VBA schnell sortieren. Einige zusätzliche Parameter sollten jedoch beim Sortieren der Daten über VBA definiert werden.

Zu diesen Parametern gehören Key, Order und Header.

  1. Schlüssel - gibt die Spalte an, die wir sortieren möchten.
  2. Order - gibt den Ordertyp an: absteigend oder aufsteigend.
  3. Header - teilt VBA mit, ob die Header-Daten in den Sortierprozess einbezogen werden oder nicht.

Ein Code mit Bereich B1 bis B13, mit Spalte B1, aufsteigender Reihenfolge und einem Header für Daten mit VBA-Code ist unten dargestellt.

Beispiel:

# VBA
Sub usingRangeSort()
Range("B1:B13").Sort Key1:=Range("B1"), _
    Order1:=xlAscending, _
    Header:=xlYes
End Sub

Ausgang:

Sortieren Sie in VBA mit Range.Sort

Wie Sie dem Beispiel entnehmen können, können wir einen Bereich mit der Methode Range.Sort() sortieren.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte, indem Sie ein Makro in VBA aufzeichnen

Das Aufzeichnen eines Makros für die VBA-Sortierung kann kompliziert sein, da es alle Parameter in die Datensortierung einbeziehen muss, aber es kann hilfreich sein, da es uns zeigt, wie der Code die Arbeit erledigen wird. Diese auf ein Excel-Arbeitsblatt angewendete Methode kann wie unten gezeigt aussehen.

Beispiel:

# vba
Sub savedMacro()
Range("A1:B13").Sort Key1:=Range("A1"), _
    Order1:=xlAscending, _
    Header:=xlYes
End Sub

Ausgang:

Sortieren in VBA mit gespeichertem Makro

Wie Sie an diesem Beispiel sehen können, können wir das Makro speichern und es in verschiedenen Blättern verwenden, wann immer wir es wollen. Ein Code kann leicht einem Copy-Paste-Prozess unterzogen werden, der auf mehrere Excel-Arbeitsblätter angewendet wird, und kann daher den Prozess der Massendaten durch VBA-Codierung beschleunigen.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der einstufigen Sortierung in VBA

Dieser Vorgang ist sehr einfach, da die Parameter nicht einzeln eingefügt werden müssen, sondern die Standardparameter unabhängig voneinander verwendet werden. Ein Benutzer muss die Parameter aller Arbeitsblätter, die er betrifft, standardmäßig festlegen.

Ein Beispiel der Methode ist unten gezeigt.

# vba
Sub SortWithSingleLevel()

Worksheets("Sheet1").Sort.SortFields.Clear

Range("A1:B13").Sort Key1:=Range("A1"), Header:=xlYes
End Sub

Ausgang:

Einstufige Sortierung in VBA

Wie Sie dem obigen Beispiel entnehmen können, können wir die Blattdaten anhand des Bereichs mit einstufiger Sortierung sortieren. Stellen wir uns nun vor, wir möchten dasselbe für die Sortierung auf mehreren Ebenen tun.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der mehrstufigen Sortierung in VBA

Wir können mehr als eine Ebene einbeziehen, während wir die Daten durch den VBA-Code sortieren.

Zum Beispiel, wenn wir einen Code ausführen sollen, der zuerst Key1 und dann Key2 sortiert. Wir beziehen die beiden Bestellungen Order1 und Order2 ein, d. h. Order1 ist mit Key1 und Order2 mit Key2 verknüpft.

Der Code funktioniert wie unten gezeigt.

# vba
Sub SortWithMultiLevel()

Worksheets("Sheet1").Sort.SortFields.Clear

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

End Sub

Ausgang:

Mehrstufige Sortierung in VBA

Wie Sie am obigen Beispiel sehen können, können wir unser Sortiment mit einer mehrstufigen Sortierung sortieren, indem wir mehrere Schlüssel und Reihenfolgen verwenden.

Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit verschiedenen Parametern in VBA

Nun werden wir verschiedene Parameter besprechen, die beim Sortieren in VBA verwendet werden können.

Sortieren Sie Daten mit dem Parameter SortOn in VBA

Dies definiert den Parameter, für den der Sortierprozess des Datums durchgeführt werden soll. Der Parameter kann Zellenwerte, Schriftfarbe oder Zellenfarbe (Hintergrundfarbe) sein.

Die Standardeinstellung ist der Zellenwert und geht wie unten gezeigt.

# vba
SortOn:= xlSortOnValues

Sortieren Sie Daten mit dem Parameter Order in VBA

Die Reihenfolge kann als aufsteigende oder absteigende Reihenfolge gewählt werden (wie im vorherigen Artikel besprochen). Die Standardeinstellung ist jedoch aufsteigend, und die Syntax ist wie unten gezeigt.

# vba
Order:= xlAscending

Sortieren Sie Daten mit dem Parameter DataOption in VBA

Dieser Parameter definiert, wie ein VBA-Code numerische und Textdaten sortiert. Mit diesem Parameter können wir Zahlen und Texte getrennt sortieren. Die verwendete Syntax ist wie unten gezeigt.

# vba
DataOption:= xlSortNormal

Sortieren Sie Daten mit dem Parameter Header in VBA

Sie beschreibt, ob der Header der Daten in den Sortierprozess einbezogen werden soll oder nicht. Die Syntax der Header-Sortierung ist unten dargestellt.

# vba
Header:= xlYes

Wenn es keinen Header gibt und wir mit dem Sortieren von Anfang an beginnen möchten, können wir den folgenden Code unten verwenden.

# vba
Header:= xlNo

Sortieren Sie Daten mit dem Parameter MatchCase in VBA

Die MatchCase-Sortierung definiert, ob bei dem Vorgang die Groß-/Kleinschreibung beachtet wird oder nicht. Die Syntax der MatchCase-Sortierung ist unten gezeigt.

# vba
MatchCase:= False

Sortieren Sie Daten mit dem Parameter Orientation in VBA

Der Parameter definiert die Sortierrichtung von oben nach unten oder durch die Spalten. Die Standard-Syntax ist unten dargestellt.

# vba
Orientation:= xlTopToBottom