Lọc trùng giữa 02 sheet (1 người xem)

Liên hệ QC

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

Tuan_hcth

Thành viên thường trực
Tham gia
8/4/07
Bài viết
206
Được thích
11
Chào các anh chị

Em có một file dữ liệu với số lượng dòng lớn (hơn 50.000 dòng) cần xử lý lọc trùng giưa 02 sheet. Trong file em gửi kèm là file giả lập. Em muốn anh, chị giúp code VBA để xử lý như sau: Căn cứ vào cột mã giữa 02 sheet (sheet1 và sheet2), làm thế nào để chỉ lấy các mã ở sheet 1 (cả vùng dữ liệu: vùng kẻ ô) không có ở sheet2. Kết quả lọc được đưa vào sheet3. Cảm ơn anh, chị
 

File đính kèm

Chào các anh chị

Em có một file dữ liệu với số lượng dòng lớn (hơn 50.000 dòng) cần xử lý lọc trùng giưa 02 sheet. Trong file em gửi kèm là file giả lập. Em muốn anh, chị giúp code VBA để xử lý như sau: Căn cứ vào cột mã giữa 02 sheet (sheet1 và sheet2), làm thế nào để chỉ lấy các mã ở sheet 1 (cả vùng dữ liệu: vùng kẻ ô) không có ở sheet2. Kết quả lọc được đưa vào sheet3. Cảm ơn anh, chị
Bạn biết gì về VBA chưa? biết gì về dictionary chưa? hay biết copy code để chỉnh sửa lại không? nếu biết thì tôi sẽ giải quyết giúp bạn trường hợp này, còn không biết thì nên gởi file giả lập càng giống thực tế càng tốt, để mọi người viết giúp bạn, như vậy bạn có thể áp dụng được liền
 
Upvote 0
Bạn biết gì về VBA chưa? biết gì về dictionary chưa? hay biết copy code để chỉnh sửa lại không? nếu biết thì tôi sẽ giải quyết giúp bạn trường hợp này, còn không biết thì nên gởi file giả lập càng giống thực tế càng tốt, để mọi người viết giúp bạn, như vậy bạn có thể áp dụng được liền
Cảm ơn anh đã quan tâm. Về giữ liệu giả lập cũng đã giống với thực tế ạ. Còn về VBA em cũng biết chút ít, có chể chỉnh sửa được những phần cơ bản.
 
Upvote 0

File đính kèm

Upvote 0
Cảm ơn anh đã quan tâm. Về giữ liệu giả lập cũng đã giống với thực tế ạ. Còn về VBA em cũng biết chút ít, có chể chỉnh sửa được những phần cơ bản.
Mã:
Sub GPE(Dic As Object)
Dim I As Long
Dim Dcuoi As Long
Dim Arr_N()
Dcuoi = Sheet2.Range("A65000").End(xlUp).Row
Arr_N = Sheet2.Range("A4:B" & Dcuoi)
For I = 1 To UBound(Arr_N, 1)
    Dic.Add Arr_N(I, 1), ""
Next
End Sub
Sub Main()
Dim Dic As Object
Dim Arr_N()
Dim I As Long
Dim K As Long
Dim Arr_D()
Set Dic = CreateObject("scripting.dictionary")
Call GPE(Dic)
Dcuoi = Sheet1.Range("A65000").End(xlUp).Row
Arr_N = Sheet1.Range("A4:B" & Dcuoi)
ReDim Arr_D(1 To UBound(Arr_N, 1) + Dic.Count, 1 To 1)
K = 0
For I = 1 To UBound(Arr_N, 1)
    If Not Dic.exists(Arr_N(I, 1)) Then
        K = K + 1
        Arr_D(K, 1) = Arr_N(I, 1)
    End If
Next
Sheet3.Range("A5:A10000").ClearContents
Sheet3.Range("A5").Resize(K, 1) = Arr_D
End Sub
bạn tự chỉnh code cho hợp lý nha, trong code này tôi không có bẫy lỗi gì nha, chỉ đưa bạn ý tưởng để bạn làm
 
Upvote 0
Web KT

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

Back
Top Bottom