[help] lọc giá trị duy nhất đồng thời copy giá trị lọc sang sheet khác (1 người xem)

Người dùng đang xem chủ đề này

hoangtrong_vbnd

Thành viên hoạt động
Tham gia
14/1/11
Bài viết
156
Được thích
7
Giới tính
Nam
Mình có xem qua một số bài trên diễn đàn tuy nhiên mới chỉ sửa được record macro đối với cách lọc giá trị duy nhất trên cùng 1 cột. Tuy nhiên có một thắc mắc và đồng thời mong muốn mọi người chỉ cách lọc giá trị duy nhất tại 2 cột A và B để cho kết quả duy nhất vào cột D hoặc cho ra kết quả trực tiếp vào sheet khác.
vì thường thường lọc duy nhất bằng advance sẽ cho ra kết quả thứ 1 trùng với thứ 2 còn các giá trị sau là duy nhất, nên có thể nào dùng macro để cho ra kết quả trực tiếp duy nhất được không. cảm ơn mọi người
Theo file đính kèm nhờ mọi người giúp đỡ !
 

File đính kèm

Mình có xem qua một số bài trên diễn đàn tuy nhiên mới chỉ sửa được record macro đối với cách lọc giá trị duy nhất trên cùng 1 cột. Tuy nhiên có một thắc mắc và đồng thời mong muốn mọi người chỉ cách lọc giá trị duy nhất tại 2 cột A và B để cho kết quả duy nhất vào cột D hoặc cho ra kết quả trực tiếp vào sheet khác.
vì thường thường lọc duy nhất bằng advance sẽ cho ra kết quả thứ 1 trùng với thứ 2 còn các giá trị sau là duy nhất, nên có thể nào dùng macro để cho ra kết quả trực tiếp duy nhất được không. cảm ơn mọi người
Theo file đính kèm nhờ mọi người giúp đỡ !
Mình không xem file, có code mẫu gởi cho bạn nghiên cứu. Có thể thay vùng [A:B] và vùng kết quả [D1]
PHP:
Sub Unique()
Dim It, Arr()
Arr = [A1:B100].Value
With CreateObject("Scripting.Dictionary")
    For Each It In Arr
         If It <> "" Then .Item(It) = ""
    Next
    [D1].Resize(.Count) = Application.Transpose(.keys)
End With
End Sub
 
Upvote 0
Mình không xem file, có code mẫu gởi cho bạn nghiên cứu. Có thể thay vùng [A:B] và vùng kết quả [D1]
Cám ơn bác về đoạn code mẫu này nhưng nó cho ra kết quả dạng value, còn e muốn nó giữ nguyên định dạng ban đầu và lọc ra giá trị duy nhất. E có dùng record macro và thay đổi đôi chút nhưng nó chỉ cho ra kết quả từng cột (VD: danh sách ban đầu ở cột A -> KQ cột D; danh sách ban đầu A&B thì KQ cột D&E). Nên e muốn hỏi có thể làm thế nào để danh sách ở cột A&B nhưng kết quả cho ra chỉ có ở cột D.
Đây là đoạn macro e có dùng record và sửa lại chút, bác xem hộ e với ạ. E cảm ơn!
Sub Macro3() Application.ScreenUpdating = Fasle
On Error GoTo badentry
Range("A:B").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"D1"), Unique:=True
Selection.End(xlUp).Select
Range("D:D").Sort Key1:=Range("D1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Exit Sub
badentry:
msg = "phat hien loi" & vbNewLine
msg = msg & "xoa du lieu cot D:"
MsgBox msg, , "ky thuat xu ly loi"

Application.ScreenUpdating = True
End Sub
 
Upvote 0
Cám ơn bác về đoạn code mẫu này nhưng nó cho ra kết quả dạng value, còn e muốn nó giữ nguyên định dạng ban đầu và lọc ra giá trị duy nhất. E có dùng record macro và thay đổi đôi chút nhưng nó chỉ cho ra kết quả từng cột (VD: danh sách ban đầu ở cột A -> KQ cột D; danh sách ban đầu A&B thì KQ cột D&E). Nên e muốn hỏi có thể làm thế nào để danh sách ở cột A&B nhưng kết quả cho ra chỉ có ở cột D.
Đây là đoạn macro e có dùng record và sửa lại chút, bác xem hộ e với ạ. E cảm ơn!
Xin phép trả lời thay Anh Hải
bài này của bạn ko khó cỡ mình làm vô tư
bạn nói code cho kết quả Value là sao hai cột kia có hàm gì đâu bên cột AB định dạng như sao thì qua D như vậy chứ trừ khi có hàm nó xoá đi thôi còn value là sao?????????

""danh sách ở cột A&B nhưng kết quả cho ra chỉ có ở cột D.""
Bạn Muốn Vậy thì Sử code Anh Hải
PHP:
Sub Unique()
Dim It, Arr()
Arr = [A2:B10000].Value
With CreateObject("Scripting.Dictionary")
    For Each It In Arr
         If It <> "" Then .Item(It) = ""
    Next
    [D2].Resize(.Count) = Application.Transpose(.keys)
End With
End Sub
Nếu muốn hai cột ra hai cột thì code sau
PHP:
Sub DN_2Cot_To_2Cot()
    [D1:E1].Value = [A1:B1].Value
    [A1:A10000].AdvancedFilter 2, , [D1], 1
    [B1:B10000].AdvancedFilter 2, , [E1], 1
End Sub
 
Upvote 0
Cám ơn bác về đoạn code mẫu này nhưng nó cho ra kết quả dạng value, còn e muốn nó giữ nguyên định dạng ban đầu và lọc ra giá trị duy nhất. E có dùng record macro và thay đổi đôi chút nhưng nó chỉ cho ra kết quả từng cột (VD: danh sách ban đầu ở cột A -> KQ cột D; danh sách ban đầu A&B thì KQ cột D&E). Nên e muốn hỏi có thể làm thế nào để danh sách ở cột A&B nhưng kết quả cho ra chỉ có ở cột D.
Đây là đoạn macro e có dùng record và sửa lại chút, bác xem hộ e với ạ. E cảm ơn!
Muốn nó ra text thì sẽ ra text thôi
PHP:
Sub Unique()
Dim It, Arr()
Arr = Range([A2], [B65536].End(3)).Value
With CreateObject("Scripting.Dictionary")
    For Each It In Arr
         If It <> "" Then .Item(It) = ""
    Next
    [D1].Resize(.Count).NumberFormat = "@"
    [D1].Resize(.Count) = Application.Transpose(.keys)
End With
End Sub
 
Upvote 0

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

Back
Top Bottom