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

Làm thế nào để sắp xếp dữ liệu cột bằng cách nhấp vào tiêu đề trong Excel?

Giả sử, tôi có một loạt dữ liệu, bây giờ, tôi muốn sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần bằng cách nhấp vào bất kỳ tiêu đề cột nào để xem ảnh chụp màn hình sau. Làm thế nào bạn có thể giải quyết công việc này trong Excel?

sắp xếp tài liệu bằng cách nhấp 1

Sắp xếp dữ liệu bằng cách nhấp vào tiêu đề cột với mã VBA


mũi tên màu xanh bong bóng bên phải Sắp xếp dữ liệu bằng cách nhấp vào tiêu đề cột với mã VBA

Thông thường, trong Excel, bạn có thể áp dụng tính năng Sắp xếp để sắp xếp dữ liệu nhanh chóng và dễ dàng, tuy nhiên, để sắp xếp dữ liệu bằng cách chỉ nhấp vào một ô, mã VBA sau đây có thể giúp bạn.

1. Bấm chuột phải vào tab trang tính mà bạn muốn sắp xếp dữ liệu bằng cách bấm vào một ô và chọn Mã Chế độ xem từ menu ngữ cảnh và trong Microsoft Visual Basic cho các ứng dụng cửa sổ, sao chép và dán mã sau vào Mô-đun trống:

Mã VBA: Sắp xếp dữ liệu bằng cách nhấp vào tiêu đề ô hoặc cột:

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

sắp xếp tài liệu bằng cách nhấp 2

2. Và sau đó lưu và đóng cửa sổ mã, bây giờ, khi bạn nhấp đúp vào bất kỳ ô hoặc tiêu đề cột nào trong phạm vi dữ liệu, cột sẽ được sắp xếp theo thứ tự tăng dần, nếu bạn nhấp đúp vào nó một lần nữa, cột sẽ được sắp xếp giảm dần cùng một lúc.


Các bài liên quan khác:

Làm thế nào để thay đổi giá trị ô bằng cách nhấp vào ô?

Làm cách nào để lọc dữ liệu chỉ bằng cách nhấp vào nội dung ô trong Excel?


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (8)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hoạt động tốt để đi lên, nhấp đúp lần thứ hai như đã nêu để đi xuống không làm gì cả
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không hoạt động, không có gì xảy ra, biết cách tạo mô-đun trong vba, đã làm điều đó, lưu và không có gì khi nhấp đúp vào tiêu đề. Hãy sửa chữa nó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không có thể làm crackerjack - không hoạt động
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Rob, Đoạn mã trên hoạt động tốt trong Excel của tôi, bạn có thể cung cấp ảnh chụp màn hình cho sự cố của mình ở đây không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào,
der Mã funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriosystem sind.
Wie muss ich dann dieen Code ändern?

Cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào bạn,
Đây là VBA bạn cần :

bln công khaiChuyển đổi dưới dạng Boolean
Bảng phụ riêng tư_ BeforeDoubleClick _
(Mục tiêu ByVal dưới dạng Phạm vi, Hủy dưới dạng Boolean)
'Cập nhật bởi Extendoffice
Làm mờ LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange dưới dạng phạm vi
Cột cuối cùng = _
Cells.Find (What: = "*", After: = Range ("A1"), _
SearchOrder: = xlByColumns, SearchDirection: = xlPrevious) .Column
keyColumn = Target.Column
If keyColumn> LastColumn Then Exit Sub
Application.ScreenUpdating = Sai
Hủy bỏ = Đúng
LastRow = Cells (Rows.Count, keyColumn) .End (xlUp) .Row
On Error Resume Next
Đặt SortRange = Target.CurrentRegion
Dim i As Long
i = 2
Đặt SortRange = SortRange.Offset (i, 0)
Đặt SortRange = SortRange.Resize (SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Không phải blnToggle
Nếu blnToggle = Đúng thì
SortRange.Sort _
Key1: = Cells (2, keyColumn), Order1: = xlAscending, Header: = xlNo
Khác
SortRange.Sort _
Key1: = Cells (2, keyColumn), Order1: = xlDescending, Header: = xlNo
Cuối Nếu
Đặt SortRange = Không có gì
Application.ScreenUpdating = True
End Sub


Nếu bạn có tiêu đề 3 hàng, chỉ cần thay đổi "i = 2" thành "i = 3" trong VBA. Hy vọng nó giúp. Có một ngày tuyệt vời.

Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Mandy/tất cả,

Có thể thay đổi mã của bạn thành chỉ sắp xếp khi các tiêu đề được nhấp đúp thay vì bất kỳ ô nào không?

Cảm ơn bạn rất nhiều!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Để giải quyết vấn đề của bạn, vui lòng áp dụng mã dưới đây:
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



Xin vui lòng có một thử, hy vọng nó có thể giúp bạn!
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL