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

Hur sorterar jag kolumndata genom att klicka på rubriken i Excel?

Om jag antar att jag har en rad data nu vill jag sortera data i stigande eller fallande ordning genom att klicka på vilken kolumnrubrik som helst för att få följande skärmdump att visas. Hur kunde du lösa detta jobb i Excel?

doc sortera genom att klicka 1

Sortera data genom att klicka på kolumnrubrik med VBA-kod


pil blå höger bubbla Sortera data genom att klicka på kolumnrubrik med VBA-kod

Normalt kan du i Excel använda sorteringsfunktionen för att sortera data snabbt och enkelt, men för att sortera data genom att bara klicka på en cell kan följande VBA-kod göra dig en tjänst.

1. Högerklicka på den arkflik som du vill sortera data genom att klicka på en cell och välj Visa kod från snabbmenyn och i den öppnade Microsoft Visual Basic för applikationer fönster, kopiera och klistra in följande kod i den tomma modulen:

VBA-kod: Sortera data genom att klicka på en cell- eller kolumnrubrik:

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

doc sortera genom att klicka 2

2. Och sedan spara och stäng kodfönstret, nu när du dubbelklickar på någon cell eller kolumnrubrik inom dataområdet sorteras kolumnen i stigande ordning, om du dubbelklickar på den igen kommer kolumnen att sorteras fallande på en gång.


Fler relaterade artiklar:

Hur ändrar man cellvärdet genom att klicka på cellen?

Hur filtrerar jag data bara genom att klicka på cellinnehåll i Excel?


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (6)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Fungerar ok att stiga, dubbelklicka en andra gång som sagt för att gå ner gör ingenting
Denna kommentar minimerades av moderatoren på webbplatsen
Fungerar inte, ingenting händer, vet hur man skapar modul i vba, gjorde det, sparade och ingenting när header dubbelklickade. Vänligen fixa det.
Denna kommentar minimerades av moderatoren på webbplatsen
No can do crackerjack - funkar inte
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Rob, Ovanstående kod fungerar bra i min Excel, kan du ge ditt problem en skärmdump här?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
der Code funktioniert auch gut bei mir. Allerdings würde ich gärna die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

Tack !!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej kompis,
Här är VBA du behöver:

Offentlig blnToggle As Boolean
Privat underarbetsblad_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Uppdatering av Extendoffice
Dim LastColumn As Long, keyColumn As Long, Last Row As Long
Dim SortRange As Range
Sista kolumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
Om keyColumn > LastColumn Avsluta Sub
Application.ScreenUpdating = False
Avbryt = Sant
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Resume Next
Ställ in SortRange = Target.CurrentRegion
Dim jag så länge
i = 2
Set SortRange = SortRange.Offset(i, 0)
Ställ in SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Inte blnToggle
Om blnToggle = Sant då
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
annars
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlNo
End If
Ställ in SortRange = Ingenting
Application.ScreenUpdating = True
End Sub


Om du har rubriker med 3 rader, ändra bara "i =2" till "i =3" i VBA. Hoppas det hjälper. Ha en bra dag.

Vänliga hälsningar,
Mandy
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL