Sortieren Sie den Datenbereich nach einer bestimmten Spalte in Excel VBA
- Sortieren Sie den Datenbereich nach einer bestimmten Spalte in VBA
-
Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit der Methode
Range.Sort()
in VBA - Sortieren Sie den Datenbereich nach einer bestimmten Spalte, indem Sie ein Makro in VBA aufzeichnen
- Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der einstufigen Sortierung in VBA
- Sortieren Sie den Datenbereich nach einer bestimmten Spalte mithilfe der mehrstufigen Sortierung in VBA
- Sortieren Sie den Datenbereich nach einer bestimmten Spalte mit verschiedenen Parametern in 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
.
Schlüssel
- gibt die Spalte an, die wir sortieren möchten.Order
- gibt den Ordertyp an: absteigend oder aufsteigend.Header
- teilt VBA mit, ob dieHeader
-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:
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:
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:
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:
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