Bạn nêu chưa rõ vấn đềMọi người giúp em sắp xếp dữ liệu trong cột 2 và cột 3 theo thứ tự tăng dần với ạ.
VD: NTGP006.02.0011, NTGP006.02.0012, NTGP006.03.0001, NTGP006.03.0002,......
Cảm ơn mọi người.
Bạn nêu chưa rõ vấn đề
Nếu xếp lại theo thứ tự, ví dụ ở ô B2: NTGP006.02, NTGP006.03, NTGP006.04, ...... nhưng vẫn để trong ô B2 hay list theo 1 cột, ví dụ:E2:E4 lần lượt là NTGP006.02, NTGP006.03, NTGP006.04.
Nếu vẫn để trong ô B2 thì phải dùng code
Chạy thử đoạn codeMọi người giúp em sắp xếp dữ liệu trong cột 2 và cột 3 theo thứ tự tăng dần với ạ.
VD: NTGP006.02.0011, NTGP006.02.0012, NTGP006.03.0001, NTGP006.03.0002,......
Cảm ơn mọi người.
Public Sub Xep()
Dim DL, Tam, Kq(), r As Long, c As Long, cl As Long
DL = Sheet1.Range("A2", Sheet1.Range("C1000000").End(xlUp))
ReDim Kq(1 To UBound(DL), 1 To UBound(DL, 2))
With CreateObject("System.Collections.ArrayList")
For r = 1 To UBound(DL)
Kq(r, 1) = DL(r, 1)
For c = 2 To UBound(DL, 2)
Tam = Split(Replace(DL(r, c), " ", ""), ",")
For cl = 0 To UBound(Tam)
.Add CStr(Tam(cl))
Next cl
.Sort
Kq(r, c) = Join(.ToArray, ", ")
.Clear
Next c
Next r
End With
Sheet1.Range("E2:G100000").ClearContents
Sheet1.Range("E2").Resize(UBound(Kq), UBound(Kq, 2)) = Kq
End Sub
Chạy thử đoạn code
Kết quả dán vào cột E:G để kiểm tra cho dễ
Mã:Public Sub Xep() Dim DL, Tam, Kq(), r As Long, c As Long, cl As Long DL = Sheet1.Range("A2", Sheet1.Range("C1000000").End(xlUp)) ReDim Kq(1 To UBound(DL), 1 To UBound(DL, 2)) With CreateObject("System.Collections.ArrayList") For r = 1 To UBound(DL) Kq(r, 1) = DL(r, 1) For c = 2 To UBound(DL, 2) Tam = Split(Replace(DL(r, c), " ", ""), ",") For cl = 0 To UBound(Tam) .Add CStr(Tam(cl)) Next cl .Sort Kq(r, c) = Join(.ToArray, ", ") .Clear Next c Next r End With Sheet1.Range("E2:G100000").ClearContents Sheet1.Range("E2").Resize(UBound(Kq), UBound(Kq, 2)) = Kq End Sub