Sắp xếp tùy chỉnh VBA Excel
Tôi không thể làm việc này ....
Code giải nén như sau:
Làm mờ wb dưới dạng Sổ làm việc: Đặt wb = ThisWorkbook
Dim ws2 As Worksheet: Set ws2 = wb.Worksheets("New BMD")
Dim varCustomOrder dưới dạng biến thể
varCustomOrder = Array("B01,B01,B02,B02a,B03,B04,B05,B06,B07,B08,B09,M01,M01,M02,M02a,M03,M04,M05,M06,M07,M08,M09,D01 ,D01,D02,D02a,B03,D04,D05,D06,D07,D08,D09")
Đặt rng5 = ws2.UsedRange
Đặt rng6 = ws2.Range("F1")
Đặt rng7 = ws2.Range("D1")
Application.AddCustomList ListArray:=varCustomOrder
rng5.Sort key1:=rng6, Order1:=xlAscending, Header:=xlYes, Key2:=rng7, Order1:=xlAscending, Header:=xlYes
' --------------------------------
Tôi muốn sắp xếp cột D theo thứ tự tùy chỉnh mà tôi đã khai báo.
Làm thế nào tôi có thể đạt được điều này?
Trả lời:
CHÀO,
hãy xem mẫu bên dưới
1) sắp xếp theo cột D (danh sách tùy chỉnh)
v = Array("XA", "PA", "AA-01", "QA")
2) sắp xếp theo cột E (thứ tự giảm dần)
pic1 (trước)
2) pic2 (sau)
vĩ mô vba
Sub Sort_by_Columns_D_E()
Dim ws As Worksheet
Đặt ws = ActiveSheet
v = Array("XA", "PA", "AA-01", "QA")
Dim r As Long, c As Long
r = ws.Range("A1").CurrentRegion.Rows.Count
c = ws.Range("A1").CurrentRegion.Columns.Count
Với ws.Sort
.SortFields.Clear
.SortFields.Add Key:= ws.Range("D2:D" & r), SortOn:=xlSortOnValues, CustomOrder:=Join(v, ","), DataOption:=xlSortNormal
.SortFields.Add Key:= ws.Range("E2:E" & r) , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange ws.Range("A1").Resize(r, c)
.Header = xlYes
.MatchCase = Sai
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Áp dụng
Kết thúc với
kết thúc phụ
Comments
Post a Comment