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

Hogyan rendezheti az oszlopadatokat az Excel fejlécére kattintva?

Tegyük fel, hogy van egy adattartománnyal, most szeretném növekvő vagy csökkenő sorrendben rendezni az adatokat bármely oszlopfejlécre kattintva, hogy a következő képernyőkép megjelenjen. Hogyan oldhatná meg ezt a munkát az Excel programban?

A doc rendezése kattintással 1

Az adatok rendezéséhez kattintson a VBA kóddal ellátott oszlopfejlécre


nyíl kék jobb buborék Az adatok rendezéséhez kattintson a VBA kóddal ellátott oszlopfejlécre

Normál esetben az Excelben alkalmazhatja a Rendezés funkciót az adatok gyors és egyszerű rendezéséhez, de az adatok rendezéséhez csak egy cellára kattintva a következő VBA-kód tehet szívességet.

1. Kattintson a jobb gombbal azon a lapfülön, amelyre az adatokat egy cellára kattintva kívánja rendezni, majd válassza a lehetőséget Kód megtekintése a helyi menüből és a megnyitottból Microsoft Visual Basic alkalmazásokhoz ablakba másolja és illessze be a következő kódot az üres modulba:

VBA kód: Az adatok rendezése egy cella vagy oszlop fejlécére kattintva:

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

A doc rendezése kattintással 2

2. Ezután mentse el és zárja be a kódablakot, most, amikor duplán kattint az adattartományon belüli bármely cellára vagy oszlopfejlécre, az oszlop növekvő sorrendbe kerül, ha ismét kétszer kattint, az oszlop egyszerre csökkenő módon lesz rendezve.


További kapcsolódó cikkek:

Hogyan lehet megváltoztatni a cella értékét a cellára kattintva?

Hogyan lehet az adatokat csak az Excel cellatartalmára kattintva szűrni?


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (8)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Rendben működik a felemelkedéshez, dupla kattintás a 2. alkalommal, ahogy az ereszkedéshez szükséges
A weboldal moderátora ezt a megjegyzést minimalizálta
Nem működik, nem történik semmi, tudja, hogyan kell modult létrehozni vba-ban, megcsináltam, mentve és semmi, amikor a fejlécre duplán kattintott. Kérlek javítsd ki.
A weboldal moderátora ezt a megjegyzést minimalizálta
Nem tud crackerjack - nem működik
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, Rob! A fenti kód jól működik az Excelben. Tudna itt képernyőképet adni a problémájáról?
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

Köszönjük!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló barát,
Itt van a szükséges VBA:

Nyilvános blnToggle As Boolean
Privát almunkalap_DoubleClick előtt_
(ByVal Target As Range, Cancel As Boolean)
'Frissítés által Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
Utolsó oszlop = _
Cells.Find(What:="*", After:=Tartomány("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Oszlop
keyColumn = Cél.Oszlop
Ha keyColumn > LastColumn, akkor lépjen ki a Sub
Application.ScreenUpdating = Hamis
Mégse = Igaz
UtolsóRow = Cells(Rows.Count, keyColumn).End(xlUp).Sor
On Error Resume Next
SortRange = Target.CurrentRegion beállítása
Dim i olyan hosszú
i = 2
SortRange beállítása = SortRange.Offset(i, 0)
SortRange beállítása = Rendezési tartomány.Átméretezés(Rendezési tartomány.Sorok száma - i, Rendezési tartomány.Oszlopok.Számlája)
blnToggle = Nem blnToggle
Ha blnToggle = Igaz Akkor
Rendezési tartomány. Rendezés _
Kulcs1:=Cellák(2, kulcsoszlop), Sorrend1:=xlNövekvő, Fejléc:=xlNem
Más
Rendezési tartomány. Rendezés _
Kulcs1:=Cellák(2, kulcsoszlop), Sorrend1:=xlCsökkenő, Fejléc:=xlNem
Ha véget
SortRange beállítása = Semmi
Application.ScreenUpdating = Igaz
End Sub


Ha 3 soros fejlécei vannak, csak módosítsa az „i =2” értéket „i =3”-ra a VBA-ban. Remélem ez segít. Szép napot.

Tisztelettel,
Mandy
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Mandy/mindenki!

Lehetséges módosítani a kódot úgy, hogy csak akkor legyen rendezve, ha a fejlécekre duplán kattintanak, és nem bármelyik cellát?

Köszönöm szépen!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,
A probléma megoldásához használja az alábbi kódot:
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



Kérem, próbálja ki, remélem tud segíteni!
Még senki sem írt megjegyzést
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi