Inhaltsverzeichnis
Umsetzung von VBA-Makro ist die effektivste, schnellste und sicherste Methode, um jede Operation in Excel auszuführen. In diesem Artikel zeigen wir Ihnen, wie Sie die Tabelle sortieren in Excel mit VBA .
Arbeitsbuch herunterladen
Sie können die kostenlose Excel-Arbeitsmappe für die Praxis hier herunterladen.
Tabelle mit VBA sortieren.xlsm
Wissenswertes vor der Implementierung von VBA zum Sortieren von Tabellen in Excel
Es gibt einige Parameter, die Sie bei der Arbeit mit dem Programm häufig verwenden müssen Sortieren Methode der VBA Deshalb werden wir hier einige der Parameter besprechen, damit Sie sich beim Schreiben des Codes damit vertraut machen können.
Parameter | Erforderlich/ Fakultativ | Datenart | Beschreibung |
---|---|---|---|
Schlüssel | Optional | Variante | Gibt den Bereich oder die Spalte an, deren Werte sortiert werden sollen. |
Bestellung | Optional | XlSortOrder | Legt die Reihenfolge fest, in der die Sortierung durchgeführt werden soll.
|
Kopfzeile | Optional | XlYesNoGuess | Gibt an, ob die erste Zeile Kopfzeilen enthält oder nicht.
|
4 Methoden zur Implementierung von VBA zum Sortieren von Tabellen in Excel
In diesem Abschnitt erfahren Sie, wie Sie Excel-Tabellen sortieren in Anbetracht Wert, Farben, Ikonen und mehrere Spalten mit VBA Code.
1 VBA zum Sortieren einer Tabelle nach Wert in Excel einbetten
Anhand des folgenden Beispiels werden wir diese Tabelle nach den Werten sortieren die im Mark Spalte in absteigender Reihenfolge.
Schritte:
- Presse Alt + F11 auf Ihrer Tastatur oder gehen Sie auf die Registerkarte Entwickler -> Visual Basic zu öffnen Visual Basic-Editor .
- Klicken Sie im Pop-up-Code-Fenster in der Menüleiste auf Einfügen -> Modul .
- Kopieren Sie den folgenden Code und fügen Sie ihn in das Codefenster ein.
Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
Ihr Code ist nun einsatzbereit.
Hier,
- SortTBL → Der Tabellenname wurde angegeben.
- SortTBL[Markierungen] -> Gibt den Spaltennamen der zu sortierenden Tabelle an.
- Schlüssel1:=iSpalte → Geben Sie den Spaltenbereich an, damit der Code weiß, welche Spalte in der Tabelle sortiert werden soll.
- Reihenfolge1:=xlDescending → Die Bestellung wurde angegeben als xlAbsteigend um die Spalte in absteigender Reihenfolge zu sortieren. Wenn Sie die Spalte in aufsteigender Reihenfolge sortieren wollen, schreiben Sie xlAufsteigend stattdessen.
- Kopfzeile:= xlYes → Da die Spalte in dieser Tabelle eine Überschrift hat, haben wir sie mit der Option xlJa Option.
- Presse F5 auf Ihrer Tastatur oder wählen Sie in der Menüleiste Run -> Run Sub/UserForm Sie können auch einfach auf die Schaltfläche kleines Play-Symbol in der Untermenüleiste, um das Makro auszuführen.
Sie werden sehen, dass die Spalte in Ihrer Tabelle jetzt in absteigender Reihenfolge sortiert .
Lesen Sie mehr: Wie man Daten in Excel nach Wert sortiert (5 einfache Methoden)
2. ein VBA-Makro zum Sortieren einer Tabelle nach mehreren Spalten einfügen
Sie können auch eine Tabelle nach mehreren Spalten sortieren in Excel mit VBA Makro.
In der obigen Tabelle werden wir die Spalten sortieren Name und Abteilung in aufsteigender Reihenfolge.
Schritte:
- Auf die gleiche Weise wie zuvor, öffnen Sie Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
- Kopieren Sie im Codefenster den folgenden Code und fügen Sie ihn ein.
Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Abteilung]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Ihr Code ist nun einsatzbereit.
Hier,
- TableValue → Der Tabellenname wurde angegeben.
- TableValue[Name] -> Gibt den ersten Spaltennamen der zu sortierenden Tabelle an.
- TableValue[Abteilung] -> Gibt den zweiten Spaltennamen der zu sortierenden Tabelle an.
- Schlüssel1:=iSpalte1 → Angabe des Spaltenbereichs, damit der Code weiß, dass die erste Spalte in der Tabelle sortiert werden muss.
- Schlüssel1:=iSpalte2 → Angabe des Spaltenbereichs, damit der Code weiß, dass die zweite Spalte in der Tabelle sortiert werden muss.
- Auftrag1:=xlAscending → Die Bestellung wurde angegeben als xlAufsteigend um die Spalte in absteigender Reihenfolge zu sortieren. Wenn Sie die Spalte in absteigender Reihenfolge sortieren wollen, schreiben Sie xlAbsteigend stattdessen.
- Kopfzeile:= xlJa → Da die Spalten dieser Tabelle Überschriften haben, haben wir sie mit der Option xlJa Option.
- ausführen. diesen Code und Sie erhalten die beiden Spalten der Tabelle sortiert in aufsteigender Reihenfolge.
Lesen Sie mehr: Automatische Sortierung mehrerer Spalten in Excel (3 Möglichkeiten)
Ähnliche Lektüre
- Wie sortiert man eine eindeutige Liste in Excel (10 nützliche Methoden)
- Array mit Excel VBA sortieren (aufsteigende und absteigende Reihenfolge)
- Sortieren und Filtern von Daten in Excel (ein vollständiger Leitfaden)
- Automatisches Sortieren in Excel bei Datenänderungen (9 Beispiele)
- Zufällige Sortierung in Excel (Formeln + VBA)
3. implementieren Makro zum Sortieren der Tabelle nach Zellenfarbe in Excel
Sie können auch eine Tabelle nach der Zellenfarbe sortieren die sie enthält.
Anhand der obigen Tabelle zeigen wir Ihnen, wie Sie die Tabelle nach den Farben sortieren können, die sie enthält.
Schritte:
- Wie bereits erwähnt, sind offene Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
- Kopieren Sie im Codefenster den folgenden Code und fügen Sie ihn ein.
Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Ihr Code ist nun einsatzbereit.
Hier wird die RGB Codes, die wir zur Verfügung gestellt haben, können Sie ihn oder jeden anderen RGB Code, den Sie wünschen, indem Sie das unten angegebene gif befolgen.
- Klicken Sie einfach auf die farbige Zelle .
- In der Startseite klicken Sie auf die Registerkarte Pfeil neben der Füllfarbe wählen Sie dann Mehr Farben Sie werden sehen, dass die RGB Codes im Benutzerdefiniert Registerkarte des erschienenen Farben Pop-up-Box.
- ausführen. diesen Code und Ihre Tabelle wird sortiert nach den Farben .
Lesen Sie mehr: Sortieren nach Farbe in Excel (4 Kriterien)
4 VBA anwenden, um Excel-Tabelle nach Symbolen zu sortieren
Angenommen, die Tabelle des Datensatzes ist zur besseren Lesbarkeit mit Symbolen versehen. Sie können die Tabelle auf Basis der Icons in Excel mit VBA Makro.
Schauen Sie sich den obigen Datensatz an. Hier hat die Tabelle Icons neben den Zahlenwerten in den Marks Spalten, damit wir verstehen können, welcher Schüler gute, schlechte oder durchschnittliche Ergebnisse hat.
Wenn Sie nicht wissen, wie Sie ein Symbol in eine Zelle einfügen können, können Sie dies einfach mit der Funktion Bedingte Formatierung Funktion in Excel.
- Wählen Sie den gesamten Bereich oder die gesamte Spalte.
- Gehe zu Bedingte Formatierung -> Icon-Sets Wählen Sie dann die gewünschten Symbolsätze aus.
Schritte zu eine Tabelle anhand von Symbolen sortieren sind unten aufgeführt.
Schritte:
- Öffnen Sie Visual Basic-Editor von der Entwickler Registerkarte und einfügen. a Modul im Code-Fenster.
- Kopieren Sie im Codefenster den folgenden Code und fügen Sie ihn ein.
Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3) .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub
Ihr Code ist nun einsatzbereit.
Hier,
- xl5Pfeile -> Wir haben die Satz mit 5 Pfeilen von der Option im Fenster Bedingte Formatierung .
- Gegenstand (1) -> Spezifiziert die erste Typ des Pfeilsymbols.
- Artikel (2) -> Spezifiziert die zweite Typ des Pfeilsymbols.
- Artikel (3) -> Spezifiziert die dritte Typ des Pfeilsymbols.
- Artikel (4) -> Spezifiziert die vierte Typ des Pfeilsymbols.
- Artikel (5) -> Spezifiziert die fünfte Typ des Pfeilsymbols.
- ausführen. diesen Code und die Tabelle wird sortiert nach den Icons .
Lesen Sie mehr: Automatisches Sortieren von Tabellen in Excel (5 Methoden)
Schlussfolgerung
Dieser Artikel zeigt Ihnen, wie Sie die Tabelle sortieren in Excel VBA Ich hoffe, dass dieser Artikel für Sie von Nutzen war. Wenn Sie Fragen zum Thema haben, können Sie sich gerne an mich wenden.