Sắp xếp tùy chỉnh VBA Excel

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

Popular posts from this blog

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

Hàm IF của Excel