Note: The other languages of the website are Google-translated. Back to English

Wie sortiere ich Spaltendaten, indem ich in Excel auf die Überschrift klicke?

Angenommen, ich habe eine Reihe von Daten. Jetzt möchte ich die Daten in aufsteigender oder absteigender Reihenfolge sortieren, indem ich auf eine beliebige Spaltenüberschrift klicke, um den folgenden Screenshot anzuzeigen. Wie können Sie diesen Job in Excel lösen?

Dokumentsortierung durch Klicken auf 1

Sortieren Sie die Daten, indem Sie auf die Spaltenüberschrift mit VBA-Code klicken


Pfeil blau rechte Blase Sortieren Sie die Daten, indem Sie auf die Spaltenüberschrift mit VBA-Code klicken

Normalerweise können Sie in Excel die Sortierfunktion anwenden, um die Daten schnell und einfach zu sortieren. Um Daten jedoch durch einfaches Klicken auf eine Zelle zu sortieren, kann Ihnen der folgende VBA-Code einen Gefallen tun.

1. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt, auf der Sie Daten sortieren möchten, indem Sie auf eine Zelle klicken, und wählen Sie Code anzeigen aus dem Kontextmenü und im geöffneten Microsoft Visual Basic für Anwendungen Kopieren Sie im Fenster den folgenden Code und fügen Sie ihn in das leere Modul ein:

VBA-Code: Sortieren Sie die Daten, indem Sie auf eine Zellen- oder Spaltenüberschrift klicken:

Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
Set SortRange = Target.CurrentRegion
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlYes
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlYes
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub

Dokumentsortierung durch Klicken auf 2

2. Speichern und schließen Sie dann das Codefenster. Wenn Sie jetzt auf eine Zellen- oder Spaltenüberschrift innerhalb des Datenbereichs doppelklicken, wird die Spalte in aufsteigender Reihenfolge sortiert. Wenn Sie erneut darauf doppelklicken, wird die Spalte sofort absteigend sortiert.


Weitere verwandte Artikel:

Wie ändere ich den Zellenwert durch Klicken auf die Zelle?

Wie filtere ich Daten, indem ich in Excel auf den Zelleninhalt klicke?


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (8)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Funktioniert gut zum Aufsteigen, doppelklicken Sie ein zweites Mal, wie angegeben, um abzusteigen, tut nichts
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Funktioniert nicht, nichts passiert, weiß, wie man ein Modul in vba erstellt, hat das getan, gespeichert und nichts, wenn auf die Kopfzeile doppelgeklickt wurde. Bitte reparieren Sie es.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Nein kann Crackerjack tun - funktioniert nicht
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, Rob, der obige Code funktioniert gut in meinem Excel, kannst du dein Problem hier mit einem Screenshot versehen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die beiden oberen Zeilen nicht mit sortieren, da diese sterben Überschriften sind.
Wie muss ich dann diesen Code ändern?

Vielen Dank!!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Freund,
Hier ist das VBA, das Sie brauchen:

Public blnToggle As Boolean
Privates Unterarbeitsblatt_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LetzteSpalte = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Spalte
keyColumn = Ziel.Spalte
Wenn keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Abbrechen = Wahr
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Resume Next
Legen Sie SortRange = Target.CurrentRegion fest
Dim ich als lang
i = 2
Set SortRange = SortRange.Offset(i, 0)
Set SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Nicht blnToggle
Wenn blnToggle = True, dann
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
sonst
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlNo
End If
Setzen Sie SortRange = Nothing
Application.ScreenUpdating = True
End Sub


Wenn Sie Überschriften mit 3 Zeilen haben, ändern Sie einfach "i = 2" in "i = 3" in der VBA. Ich hoffe es hilft. Ich wünsche ihnen einen wunderbaren Tag.

Mit freundlichen Grüßen
Mandy
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Mandy/alle,

Ist es möglich, Ihren Code so zu ändern, dass er nur sortiert, wenn auf die Überschriften anstelle einer Zelle doppelgeklickt wird?

Vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Um Ihr Problem zu lösen, wenden Sie bitte den folgenden Code an:
Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
Dim xAddress As String
Dim xRgI As Range
xAddress = "A1:E2" 'The headers
Set xRgI = Intersect(Range(xAddress), Target)
If xRgI Is Nothing Then Exit Sub
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Resume Next
Set SortRange = Target.CurrentRegion
Dim i As Long
i = 2
Set SortRange = SortRange.Offset(i, 0)
Set SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlNo
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub



Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL