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

Πώς να ταξινομήσετε τα δεδομένα στηλών κάνοντας κλικ στην κεφαλίδα στο Excel;

Ας υποθέσουμε, έχω μια σειρά δεδομένων, τώρα, θα ήθελα να ταξινομήσω τα δεδομένα με αύξουσα ή φθίνουσα σειρά κάνοντας κλικ σε οποιαδήποτε κεφαλίδα στήλης για να εμφανιστεί το ακόλουθο στιγμιότυπο οθόνης. Πώς θα μπορούσατε να λύσετε αυτήν την εργασία στο Excel;

ταξινόμηση εγγράφου με κλικ 1

Ταξινόμηση δεδομένων κάνοντας κλικ στην κεφαλίδα στήλης με κωδικό VBA


βέλος μπλε δεξιά φούσκα Ταξινόμηση δεδομένων κάνοντας κλικ στην κεφαλίδα στήλης με κωδικό VBA

Κανονικά, στο Excel, μπορείτε να εφαρμόσετε τη δυνατότητα Ταξινόμηση για να ταξινομήσετε τα δεδομένα γρήγορα και εύκολα, αλλά, για να ταξινομήσετε δεδομένα κάνοντας απλώς κλικ σε ένα κελί, ο ακόλουθος κώδικας VBA μπορεί να σας βοηθήσει.

1. Κάντε δεξί κλικ στην καρτέλα φύλλων που θέλετε να ταξινομήσετε δεδομένα κάνοντας κλικ σε ένα κελί και επιλέξτε Προβολή κωδικού από το μενού περιβάλλοντος και στο ανοιχτό Microsoft Visual Basic για εφαρμογές παράθυρο, αντιγράψτε και επικολλήστε τον ακόλουθο κώδικα στην κενή ενότητα:

Κωδικός VBA: Ταξινόμηση δεδομένων κάνοντας κλικ σε μια κεφαλίδα κελιού ή στήλης:

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

ταξινόμηση εγγράφου με κλικ 2

2. Και, στη συνέχεια, αποθηκεύστε και κλείστε το παράθυρο κώδικα, τώρα, όταν κάνετε διπλό κλικ σε οποιοδήποτε κελί ή κεφαλίδα στήλης εντός του εύρους δεδομένων, η στήλη θα ταξινομηθεί σε αύξουσα σειρά, εάν κάνετε διπλό κλικ ξανά, η στήλη θα ταξινομηθεί φθίνουσα ταυτόχρονα.


Περισσότερα σχετικά άρθρα:

Πώς να αλλάξετε την τιμή του κελιού κάνοντας κλικ στο κελί;

Πώς να φιλτράρετε δεδομένα κάνοντας κλικ στο περιεχόμενο κυττάρων στο Excel;


Τα καλύτερα εργαλεία παραγωγικότητας του Office

Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%

  • Επαναχρησιμοποίηση: Εισαγάγετε γρήγορα σύνθετοι τύποι, γραφήματα και οτιδήποτε έχετε χρησιμοποιήσει στο παρελθόν. Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές / στήλες... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Υποστηρίζει Office / Excel 2007-2021 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας. Πλήρεις δυνατότητες δωρεάν δοκιμής 30 ημερών. Εγγύηση επιστροφής χρημάτων 60 ημερών.
kte καρτέλα 201905

Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Σχόλια (9)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Λειτουργεί εντάξει για να ανεβείτε, κάντε διπλό κλικ για 2η φορά όπως δηλώθηκε για κάθοδο δεν κάνει τίποτα
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Δεν λειτουργεί, δεν συμβαίνει τίποτα, ξέρετε πώς να δημιουργήσετε μονάδα σε vba, το έκανα, αποθηκεύτηκε και τίποτα όταν κάνετε διπλό κλικ στην κεφαλίδα. Παρακαλώ διορθώστε το.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
No can do crackjack - μην δουλεύεις
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, Rob, Ο παραπάνω κώδικας λειτουργεί καλά στο Excel μου, μπορείτε να δώσετε ένα στιγμιότυπο οθόνης στο πρόβλημά σας;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας,
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?

Σας ευχαριστούμε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου φίλος,
Εδώ είναι το VBA που χρειάζεστε:

Δημόσιο blnΕναλλαγή ως Boolean
Ιδιωτικό δευτερεύον φύλλο εργασίας_BeforeDoubleClick _
(ByVal Στόχευση ως εύρος, Ακύρωση ως Boolean)
'Ενημέρωση Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
Search Order:=xlByColumns, SearchDirection:=xlPrevious).Στήλη
keyColumn = Target.Column
Αν keyColumn > LastColumn Στη συνέχεια, βγείτε από το Sub
Application.ScreenUpdating = False
Ακύρωση = Αληθινό
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
On Error Συνέχιση Επόμενη
Ορισμός SortRange = Target.CurrentRegion
Dim i As Long
i = 2
Set SortRange = SortRange.Offset(i, 0)
Ορισμός SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Όχι blnToggle
Αν blnToggle = True Τότε
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
Αλλού
SortRange.Sort _
Key1:=Κελιά(2, keyColumn), Order1:=xlΦθίνουσα, Header:=xlNo
End If
Ορισμός SortRange = Τίποτα
Application.ScreenUpdating = True
Sub End


Εάν έχετε κεφαλίδες 3 σειρών, απλώς αλλάξτε το "i =2" σε "i =3" στο VBA. Ελπίζω να βοηθήσει. Να έχεις μια υπέροχη μέρα.

Με αγάπη,
Mandy
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Mandy/όλοι,

Είναι δυνατόν να αλλάξετε τον κωδικό σας ώστε να ταξινομείται μόνο όταν κάνετε διπλό κλικ στις κεφαλίδες αντί για οποιοδήποτε κελί;

Σας ευχαριστώ πολύ!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χαίρετε Κ.
Για να λύσετε το πρόβλημά σας, εφαρμόστε τον παρακάτω κώδικα:
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



Παρακαλώ δοκιμάστε, ελπίζω να σας βοηθήσει!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό λειτουργεί τέλεια! Ευχαριστώ πολύ skyyang!
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Αφήστε τα σχόλιά σας στα αγγλικά
Δημοσίευση ως επισκέπτης
×
Αξιολογήστε αυτήν την ανάρτηση:
0   Χαρακτήρες
Προτεινόμενες τοποθεσίες

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL