Xóa dữ liệu trùng bằng VBA
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 SubMong 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ụ
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
Bình luận