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

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ