phihndhsp
Thành viên gạo cội




- Tham gia
- 26/12/09
- Bài viết
- 3,363
- Được thích
- 2,488
- Giới tính
- Nam
- Nghề nghiệp
- Giáo Viên
Tối ưu là viết hẳn 1 hàm riêng để lọc Unique
PHP:Function UniqueList(ParamArray sArray()) Dim Item, tmpArr, SubArr On Error Resume Next With CreateObject("Scripting.Dictionary") For Each SubArr In sArray tmpArr = SubArr If TypeName(tmpArr) <> "Variant()" Then If tmpArr <> "" Then .Add tmpArr, "" Else For Each Item In tmpArr If Item <> "" Then If Not .Exists(Item) Then .Add Item, "" End If Next End If Next If .Count Then UniqueList = .Keys End With End Function
Nói thêm: Hàm UniqueList này có khả năng lọc những vùng không nằm liên tục nhau đấy... Ví dụ:PHP:Sub Loc() Dim Arr, tmpArr, i As Long tmpArr = UniqueList(Sheet1.Range("A2:B60000")) Sheet2.Range("A:A").ClearContents If IsArray(tmpArr) Then ReDim Arr(1 To UBound(tmpArr) + 1, 1 To 1) For i = 0 To UBound(tmpArr) Arr(i + 1, 1) = tmpArr(i) Next Sheet2.Range("A1").Resize(i).Value = Arr End If End Sub
Mã:With Sheet1 tmpArr = UniqueList(.[A2:A60000], .[E2:E60000], .[H2:H60000]) End With
PHP:
Sub Loc()
Dim Arr, tmpArr, i As Long
tmpArr = UniqueList(Sheet1.Range("A2:B60000"))
Sheet2.Range("A:A").ClearContents
If IsArray(tmpArr) Then
ReDim Arr(1 To UBound(tmpArr) + 1, 1 To 1)
For i = 0 To UBound(tmpArr)
Arr(i + 1, 1) = tmpArr(i)
Next
Sheet2.Range("A1").Resize(i).Value = Arr
End If
End Sub
tmpArr = UniqueList(Sheet1.Range("A2:B60000"))
Sheet2.Range("A:A").ClearContents
anh giải thích dùm em 1 tí nha, cảm ơn anh nhiều chào anh