Xóa dữ liệu trùng bằng VBA

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Mong mọi người giúp đỡ.

Chào cả nhà, mình có một file như đính kèm. Dữ liệu mới được thêm vào liên tục hàng ngày, tuy nhiên sẽ có nhiều trường hợp hóa đơn được thêm mới bị trùng số với hóa đơn từ ngày trước đó (Mình dùng conditional formatting để bôi đỏ những hóa đơn này). Giờ mình muốn dùng VBA để xóa các dòng hóa đơn trùng cũ, giữ lại các dòng mới. Tuy nhiên, các ghi chú (remark) thì được cập nhật từ hóa đơn cũ vào hóa đơn mới.
Yêu cầu là trong quá trình chạy VBA không tạo thêm dòng mới, và code gọn nhẹ vì dữ liệu của mình khá lớn (>10000 dòng), mình dùng 2 vòng lặp for…next… thì ra kết quả nhưng tốc độ chạy rất chậm.
Có cả những hóa đơn không trùng nha bạn, những hóa đơn đó mình giữ nguyên. Code của mình tương tự như bên dưới.

Sub test()
Dim i, j, r As Integer
r = Cells(4, 1).End(xlDown).row
For i = 4 To r
    For j = i + 1 To r
        If Cells(i, 1) = Cells(j, 1) Then
            Cells(j, 3) = Cells(i, 3)
            Cells(i, 1).EntireRow.Delete
            i = i - 1
            j = j - 1
            r = r - 1
        End If
    Next j
Next i
End Sub

Mong mọi người giúp đỡ.

nha nha 1 2 3 5

www.giaiphapexcel.com/diendan/threads/x%C3%B3a-d%E1%BB%AF-li%E1%BB%87u-tr%C3%B9ng-b%E1%BA%B1ng-vba.151939/

Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ
Khóa học SprinGO phù hợp

Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ

Con người là một trong những yếu tố quan trọng của công ty, là tài sản quý giá của doanh nghiệp. Chính vì thế,...

Xem khóa học
★★★★★ 5 ★ 1 👤 3 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm