Hướng dẫn excel vba sort table - bảng sắp xếp excel vba

Sắp xếp là một việc thường xuyên được thực hiện khi thao tác với dữ liệu trong VBA. Lợi ích của việc sắp xếp giúp cho chúng ta quản lý dữ liệu tốt hơn, dễ dàng tra cứu, kiểm tra hơn. Trong bài học này chúng ta cùng tìm hiểu một số cách sử dụng lệnh Sort trong VBA:

  • Ví dụ 1: Sắp xếp không bao gồm tiêu đề
  • Ví dụ 2: Sắp xếp có bao gồm tiêu đề
  • Ví dụ 3: Sắp xếp thứ tự trong tất cả các sheet

Ví dụ 1: Sắp xếp không bao gồm tiêu đề

Ví dụ 2: Sắp xếp có bao gồm tiêu đề

Hướng dẫn excel vba sort table - bảng sắp xếp excel vba

Ví dụ 3: Sắp xếp thứ tự trong tất cả các sheet

Cho bảng dữ liệu sau, hãy sắp xếp thứ tự nội dung trong bảng theo dữ liệu ở cột D

Câu lệnh sắp xếp như sau:

Trong câu lệnh này, bảng tính giới hạn từ ô A2 tới dòng cuối của cột G (toàn bộ bảng tính từ cột A tới G, từ dòng 2 tới dòng cuối có chứa dữ liệu).xlDescending thay cho xlAscending)

Nội dung sắp xếp là nội dung tại cột D, tính từ ô D2

Thứ tự sắp xếp là thứ tự tăng dần (nếu sắp xếp giảm dần thì dùng xlDescending thay cho xlAscending)

Thứ tự sắp xếp có thể biểu diễn dưới dạng số:

Ví dụ 2: Sắp xếp có bao gồm tiêu đề

Ví dụ 3: Sắp xếp thứ tự trong tất cả các sheet

Cho bảng dữ liệu sau, hãy sắp xếp thứ tự nội dung trong bảng theo dữ liệu ở cột D

  • Câu lệnh sắp xếp như sau:
  • Trong câu lệnh này, bảng tính giới hạn từ ô A2 tới dòng cuối của cột G (toàn bộ bảng tính từ cột A tới G, từ dòng 2 tới dòng cuối có chứa dữ liệu).
  • Nội dung sắp xếp là nội dung tại cột D, tính từ ô D2

Ví dụ 3: Sắp xếp thứ tự trong tất cả các sheet

Cho bảng dữ liệu sau, hãy sắp xếp thứ tự nội dung trong bảng theo dữ liệu ở cột D

Câu lệnh sắp xếp như sau:

  • Trong câu lệnh này, bảng tính giới hạn từ ô A2 tới dòng cuối của cột G (toàn bộ bảng tính từ cột A tới G, từ dòng 2 tới dòng cuối có chứa dữ liệu).
  • Nội dung sắp xếp là nội dung tại cột D, tính từ ô D2

Thứ tự sắp xếp là thứ tự tăng dần (nếu sắp xếp giảm dần thì dùng xlDescending thay cho xlAscending)

Thứ tự sắp xếp có thể biểu diễn dưới dạng số:

xlAscending là số 1

xlDescending là số 2· ·

Sắp xếp theo giá trị

Quy trình này sắp xếp dữ liệu theo thứ tự giảm dần của & nbsp; trans_value trong dữ liệu được hiển thị bên dưới.

Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects("Sales_Table")
Dim sortcolumn As Range
Set sortcolumn = Range("Sales_Table[TRANS_VALUE]")
With tbl.Sort
   .SortFields.Clear
   .SortFields.Add Key:=sortcolumn, SortOn:=xlSortOnValues, Order:=xlDescending
   .Header = xlYes
   .Apply
End With

Mã trên liên quan đến dữ liệu được hiển thị dưới đây.

Hướng dẫn excel vba sort table - bảng sắp xếp excel vba

Sắp xếp theo màu di động

Để sắp xếp theo màu di động, chỉ định điều này trong tham số Domton & nbsp; của phương thức Thêm.Sau đó, bạn phải chỉ định màu để sắp xếp bằng cách sử dụng thuộc tính sytonValue của đối tượng sortfield (xem bên dưới).SortOn parameter of the Add method. You then have to specify the colour to sort by using the SortOnValue property of the SortField object (see below).

Dim ws As Worksheet
Set ws = ActiveSheet
Dim tbl As ListObject
Set tbl = ws.ListObjects("Sales_Table")
Dim sortcolumn As Range
Set sortcolumn = Range("Sales_Table[TRANS_VALUE]")
With tbl.Sort
  .SortFields.Clear
  .SortFields.Add(Key:=sortcolumn, Order:=xlAscending, _
   SortOn:=xlSortOnCellColor).SortOnValue.Color =RGB(255, 255, 0)
  .Header = xlYes
  .Apply
End With

Sắp xếp theo biểu tượng

Để sắp xếp theo biểu tượng, chỉ định điều này trong tham số Domtonof phương thức Thêm.Sau đó, bạn phải chỉ định biểu tượng để sắp xếp bằng cách sử dụng phương thức biểu tượng SET của đối tượng SortField.SortOn parameterof the Add method. You then have to specify the icon to sort by usingthe Set Icon method of the SortField object.

Dim ws AsWorksheet
Set ws =ActiveSheet
Dim tbl AsListObject
Set tbl =ws.ListObjects("Sales_Table")
Dim sortcolumnAs Range
Set sortcolumn= Range("Sales_Table[TRANS_VALUE]")
With tbl.Sort
   .SortFields.Clear
   .SortFields.Add(Key:=sortcolumn, Order:=xlAscending, _ SortOn:=xlSortOnIcon).SetIcon _ 
    Icon:=ActiveWorkbook.IconSets(xl3TrafficLights1).Item(1)
   .Header =xlYes
   .Apply
End With