viết code trong excel để sắp xếp theo yêu cầu sau đó tách sheet

Liên hệ QC

thufpts

Thành viên hoạt động
Tham gia
6/8/12
Bài viết
154
Được thích
6
Giới tính
Nam
Nghề nghiệp
Bốc vác
em chào các bác!
em có một file excel có các cột ở dòng số 8 được đánh thứ tự ưu tiên và mong muốn được sắp xếp theo các điều kiện sau nhờ các bác, anh chị giúp đỡ
1) cột E, W, AC các dữ liệu giống nhau thì được sắp xếp cùng nhau theo thứ tự ưu tiên đã đánh đâu ở dòng số 8, cột G sắp xếp tăng dần ví dụ
ví dụ kết quả như sau khi bấm nút "sap xep" sẽ sắp xếp MACHINE có 7 dòng giá trị là PFR 01, TEETH là 44 và INK COLOR là BLACK được sắp xếp cùng nhau sao cho cột FINAL D có ngày tăng dần cho đến khi hết TEETH có giá trị là 44 thì chuyển sang TEETH có giá trị 44, hết 44 thì chuyển sang 83, hết 83 thì chuyển sang 46 lần lượt như ảnh em gửi, nó phức tạp ở chỗ là nhiều dữ liệu quá ngồi làm thủ công thì rối loạn luôn.

2) nếu thứ tự ưu tiên được thay đổi thì khi bấm nút sắp xếp sẽ được thay đổi theo thứ tự ưu tiên mới
3) khi sắp xếp xong tiến hành tách sheet theo cột MACHINE NAME, ví dụ cột MACHINE NAME có 3 tên là PFR09, PFR01 và PFR04 thì tách thành 3 sheets, nghĩa là có bao nhiêu tên thì tách thành bây nhiêu sheet

1727684604007.png
 

File đính kèm

  • Sapxep.xlsb
    52.8 KB · Đọc: 5
Lần chỉnh sửa cuối:
em chào các bác!
em có một file excel có các cột ở dòng số 8 được đánh thứ tự ưu tiên và mong muốn được sắp xếp theo các điều kiện sau nhờ các bác, anh chị giúp đỡ
1) cột E, W, AC các dữ liệu giống nhau thì được sắp xếp cùng nhau theo thứ tự ưu tiên đã đánh đâu ở dòng số 8, cột G sắp xếp tăng dần ví dụ
ví dụ kết quả như sau khi bấm nút "sap xep" sẽ sắp xếp MACHINE có 7 dòng giá trị là PFR 01, TEETH là 44 và INK COLOR là BLACK được sắp xếp cùng nhau sao cho cột FINAL D có ngày tăng dần cho đến khi hết TEETH có giá trị là 44 thì chuyển sang TEETH có giá trị 44, hết 44 thì chuyển sang 83, hết 83 thì chuyển sang 46 lần lượt như ảnh em gửi, nó phức tạp ở chỗ là nhiều dữ liệu quá ngồi làm thủ công thì rối loạn luôn.

2) nếu thứ tự ưu tiên được thay đổi thì khi bấm nút sắp xếp sẽ được thay đổi theo thứ tự ưu tiên mới
3) khi sắp xếp xong tiến hành tách sheet theo cột MACHINE NAME, ví dụ cột MACHINE NAME có 3 tên là PFR09, PFR01 và PFR04 thì tách thành 3 sheets, nghĩa là có bao nhiêu tên thì tách thành bây nhiêu sheet

View attachment 304357
Thử code này xem sao?
Mã:
Sub Sortby5Column()
Dim lastRow As Long, i As Long, rng As Range, SortRng As Range
With Worksheets("PFL_PRINT")
    lastRow = .Range("B9").End(xlDown).Row
    Set rng = .Range("B9:AT" & lastRow) '
    For i = 5 To 1 Step -1
        Set SortRng = .Range("A8:AC8").Find(i).Offset(1, 0)
        rng.Sort Key1:=SortRng, Order1:=xlAscending
    Next
End With
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom