Sắp xếp theo màu sắc (Microsoft Excel)
Excel cho phép bạn sắp xếp dữ liệu trong trang tính của mình theo bất kỳ số lượng thuộc tính nào. Tuy nhiên, một trong những điều mà bạn không thể sắp xếp về bản chất là màu của ô — ít nhất là không cập nhật lên Excel 2007 trở lên. Đối với một số ứng dụng, đây có thể là một tính năng rất tiện dụng.
Macro sau, SortByColor, sẽ sắp xếp một bảng dựa trên màu mà một ô được định dạng.
Sub SortByColor() On Error GoTo SortByColor_Err Dim sRangeAddress As String Dim sStartCell As String Dim sEndCell As String Dim rngSort As Range Dim rng As Range Application.ScreenUpdating = False sStartCell = InputBox("Enter the cell address of the " & _ "top cell in the range to be sorted by color" & _ Chr(13) & "i.e. 'A1'", "Enter Cell Address") If sStartCell > "" Then sEndCell = Range(sStartCell).End(xlDown).Address Range(sStartCell).EntireColumn.Insert Set rngSort = Range(sStartCell, sEndCell) For Each rng In rngSort rng.Value = rng.Offset(0, 1).Interior.ColorIndex Next Range(sStartCell).Sort Key1:=Range(sStartCell), _ Order1:=xlAscending, Header:=xlNo, _ Orientation:=xlTopToBottom Range(sStartCell).EntireColumn.Delete End If SortByColor_Exit: Application.ScreenUpdating = True Set rngSort = Nothing Exit Sub SortByColor_Err: MsgBox Err.Number & ": " & Err.Description, _ vbOKOnly, "SortByColor" Resume SortByColor_Exit End Sub
Macro hoạt động bằng cách hỏi bạn ô đầu tiên của dải ô bạn muốn sắp xếp. Đây phải là ô cao nhất trong phạm vi. Sau đó, macro sẽ chèn một cột (chỉ là tạm thời) trong đó các giá trị màu có thể được lưu trữ. Sau đó, nó bước qua từng ô trong phạm vi được xác định bởi ô bắt đầu mà bạn đã chỉ định.
SortByColor giả sử bảng dữ liệu của bạn không có hàng tiêu đề. Nếu có, bạn nên thay đổi lệnh sắp xếp thực tế. Chỉ cần thay đổi Header: = xlNo thành Header: = xlYes.
Bạn nên lưu ý rằng macro SortByColor sẽ chỉ sắp xếp các ô dựa trên màu rõ ràng được áp dụng cho ô, nó sẽ không sắp xếp nếu màu của ô là kết quả của định dạng có điều kiện.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3122) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: