Bạn cần phải lọc một danh sách duy nhất từ một danh sách đầy thông tin trùng lắp với nhau, bạn có thế sử dụng chức năng "remove duplicates" để giải quyết nó. Nhưng phải làm thế nào với trường hợp dùng VBA để lọc.
Dưới đây sẽ là code để bạn biết cách làm thế nào để có thể lọc ra danh sách duy nhất từ một danh sách có các giá trị trùng lắp với nhau.
Code function để sử dụng cho nhiều trường hợp cần lọc duy nhất.
Dưới đây sẽ là code để bạn biết cách làm thế nào để có thể lọc ra danh sách duy nhất từ một danh sách có các giá trị trùng lắp với nhau.
Sub LocDuLieu_Duynhat() Dim vaData As Variant Dim colUnique As Collection Dim aOutput() As Variant Dim i As Long Dim LastRow As Long LastRow = Worksheets(Sheet1.Name).Cells(2, "A").End(xlDown).Row 'Lay du lieu can loc dua vao mang vaData = Sheet1.Range("A2:G" & LastRow).Value 'Create a new collection Set colUnique = New Collection 'Loop through the data For i = LBound(vaData, 1) To UBound(vaData, 1) 'Collections can't have duplicate keys, so try to 'add each item to the collection ignoring errors. 'Only unique items will be added On Error Resume Next colUnique.Add vaData(i, 1), CStr(vaData(i, 1)) On Error GoTo 0 Next i 'size an array to write out to the sheet ReDim aOutput(1 To colUnique.Count, 1 To 1) 'Loop through the collection and fill the output array For i = 1 To colUnique.Count aOutput(i, 1) = colUnique.Item(i) Next i 'Write the unique values to column B Sheet1.Range("B2").Resize(UBound(aOutput, 1), UBound(aOutput, 2)).Value = aOutput End Sub
Code function để sử dụng cho nhiều trường hợp cần lọc duy nhất.
Public Function LocDuyNhat(Rng As Range) Dim vaData As Variant Dim colUnique As Collection Dim aOutput() As Variant Dim i As Long 'Lay du lieu can loc dua vao mang vaData = Rng.Value 'Create a new collection Set colUnique = New Collection 'Loop through the data For i = LBound(vaData, 1) To UBound(vaData, 1) 'Collections can't have duplicate keys, so try to 'add each item to the collection ignoring errors. 'Only unique items will be added On Error Resume Next colUnique.Add vaData(i, 1), CStr(vaData(i, 1)) On Error GoTo 0 Next i 'size an array to write out to the sheet ReDim aOutput(1 To colUnique.Count, 1 To 1) 'Loop through the collection and fill the output array For i = 1 To colUnique.Count aOutput(i, 1) = colUnique.Item(i) Next i ' Trả giá trị lọc được về LocDuyNhat = aOutput() End FunctionCode gọi function và xuất nó ra cột để sử dụng
' Khai báo biến aOutput để lưu mảng trả về để tiện cho việc sử dụng Dim LuuDS() As Variant ' Gọi hàm (function) và truyền dữ liệu vào để tìm LuuDS= LocDuyNhat(Sheet2.Range("F5:F1000")) ' xuất danh sách đã lọc ra cột D bắt đầu từ D5 Sheet11.Range("D5").Resize(UBound(LuuDS, 1), UBound(LuuDS, 2)).Value = LuuDS
cong ty dich thuat mien trung dich thuat sai gon dich thuat chuyen nghiep Vietnamese translation dich thuat sai gon
Trả lờiXóa