Was ich letztlich bräuchte wäre sowas wie ein variables Selection.Sort.
Geht das irgendwie?
Vielen Dank.
Lars
Sub variables_sortieren()
lz = Cells(Rows.Count, 1).End(xlUp).Row
ls = Cells(1, 256).End(xlToLeft).Column
sp = InputBox("Sortierung")
Range(Cells(2, 1), Cells(lz, ls)).Sort Key1:=Cells(2, sp), Header:=xlNo
End Sub
Öffne Excel und erstelle ein neues VBA-Modul:
ALT + F11
, um den VBA-Editor zu öffnen.Füge den folgenden Code ein:
Sub variables_sortieren()
lz = Cells(Rows.Count, 1).End(xlUp).Row
ls = Cells(1, 256).End(xlToLeft).Column
sp = InputBox("Sortierung")
Range(Cells(2, 1), Cells(lz, ls)).Sort Key1:=Cells(2, sp), Header:=xlNo
End Sub
Führe das Makro aus:
ALT + F8
, um das Makro auszuführen.variables_sortieren
aus und klicke auf "Ausführen".Gib die Spaltennummer zur Sortierung ein, wenn du dazu aufgefordert wirst.
Problem: excel benutzerdefiniertes sortieren funktioniert nicht
.
Header
korrekt gesetzt ist. Wenn deine Tabelle Titel hat, setze Header:=xlYes
. Andernfalls verwende Header:=xlNo
.Problem: Der Code sortiert die Daten nicht.
InputBox
eingibst, und stelle sicher, dass sie gültig ist.Verwendung von vba .sort
:
Eine Alternative zur Verwendung von Selection.Sort
ist die direkte Verwendung von Range.Sort
für mehr Kontrolle über die Sortierung.
Range("A2:C10").Sort Key1:=Range("B2:B10"), Order1:=xlAscending, Header:=xlYes
Benutzerdefinierte Listen: Du kannst auch benutzerdefinierte Listen in Excel erstellen, die dir bei der Sortierung helfen, insbesondere wenn du nach spezifischen Kriterien sortieren möchtest.
Einfaches Sortieren mit zwei Kriterien:
Sub sortieren_mit_zwei_kriterien()
Range("A2:C100").Sort Key1:=Range("A2:A100"), Order1:=xlAscending, Key2:=Range("B2:B100"), Order2:=xlDescending, Header:=xlYes
End Sub
Sortieren nach benutzerdefinierten Werten:
Sub benutzerdefinierte_sortierung()
Range("A2:A100").Sort Key1:=Range("A2:A100"), OrderCustom:=1, Header:=xlYes
End Sub
Hierbei wird die Sortierung anhand einer benutzerdefinierten Liste durchgeführt, die in den Excel-Optionen definiert ist.
Application.ScreenUpdating = False
am Anfang deines Makros und setze es am Ende wieder auf True
, um die Performance zu verbessern.MatchCase
-Option verwenden möchtest, um die Sortierung case-sensitiv zu gestalten.Verwende With
-Anweisungen, um deinen Code lesbarer zu machen:
With Range("A2:C100")
.Sort Key1:=.Columns(1), Order1:=xlAscending, Header:=xlYes
End With
1. Wie kann ich eine benutzerdefinierte Liste zum Sortieren in Excel erstellen?
Gehe zu "Datei" > "Optionen" > "Erweitert" > "Allgemein" und klicke auf "Benutzerdefinierte Listen bearbeiten". Dort kannst du deine eigene Liste erstellen.
2. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten Versionen von Excel verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen