Dear all
Mình có một file excel quản lý tài liệu thiết kế như đính kèm; Vấn đề của mình là muốn lọc ra các bản vẽ giống nhau nhưng chỉ lấy phiên bản cuối cùng các phiên bản khác bỏ đi; thứ tự phiên bản từ chữ cái đến số tức là phiên bản đầu sẽ là A tiếp theo là B rồi hết chữ cái sẽ đến số bắt đầu từ 0 rồi đến 1,2...; Vì số lượng rất lớn nên cần làm code để lọc cho nhanh mà mình vẫn chưa làm được mong mọi người giúp đỡ.
Sub Loc()
Dim Arr, Res
Dim i As Long, j As Long, k As Long, Tmp, Tmp1
Dim Dk1 As Long, Dk2 As Long
Arr = Sheets("DATA").Range("A2:C" & Sheets("DATA").[C65536].End(3).Row)
ReDim Res(1 To UBound(Arr, 1), 1 To 3)
With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(Arr, 1)
If Not .Exists(Arr(i, 1)) Then
k = k + 1
.Add Arr(i, 1), k
Res(k, 1) = Arr(i, 1)
Res(k, 2) = Arr(i, 2)
Res(k, 3) = Arr(i, 3)
End If
Next
For i = 1 To UBound(Arr, 1)
Tmp = UCase(Res(.Item(Arr(i, 1)), 3))
Dk1 = IIf(IsNumeric(Tmp), Asc(Tmp) + 20, Asc(Tmp) - 64)
Tmp1 = UCase(Arr(i, 3))
Dk2 = IIf(IsNumeric(Tmp1), Asc(Tmp1) + 20, Asc(Tmp1) - 64)
If Dk1 < Dk2 Then
Res(.Item(Arr(i, 1)), 3) = Arr(i, 3)
End If
Next
Sheets("Data").Range("F2").Resize(k, 3) = Res
End With
End Sub
- bạn nên trích dẫn là đang nhờ thành viên nào?À quên còn thêm một cột thứ 4 nữa nhưng cột này chỉ giống như cột thứ 2 thôi sửa giúp để copy cột đó luôn cái nhé