xóa dữ liệu dùng VBA theo điều kiên

Quảng cáo

caonguyen89

Thành viên mới
Tham gia ngày
26 Tháng sáu 2018
Bài viết
39
Được thích
4
Điểm
0
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
 

File đính kèm

  • xóa dữ liệu trùng.xlsx
    120.1 KB · Đọc: 17

anhdepjai

Thành viên thường trực
Tham gia ngày
16 Tháng sáu 2010
Bài viết
329
Được thích
69
Điểm
648
Tuổi
36
Bạn dùng privo table để lấy ra dữ liệu duy nhất ở cột E, sau đó, dùng nó để vlookup lại dữ liệu ở sheet ban đầu ấy, sao cứ phải dùng code
 

XuanThanh

Thành viên thường trực
Tham gia ngày
20 Tháng ba 2007
Bài viết
278
Được thích
373
Điểm
0
Dùng cột phụ đi cho nhanh. Cột phụ tại L có tiêu đề là Xoa
Ô L8 ghi công thức =COUNTIF($E$8:E8,E8), Fill xuống dưới
Filter những giá trị ở cột L > 1 rồi xóa cái rẹc là xong
 
Lần chỉnh sửa cuối:

snow25

Thành viên gắn bó
Tham gia ngày
24 Tháng bảy 2018
Bài viết
2,768
Được thích
2,736
Điểm
1,368
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
Code tham khảo Dictionary
 

phulien1902

GPE - My love
Tham gia ngày
6 Tháng bảy 2013
Bài viết
3,544
Được thích
4,419
Điểm
1,568
Nơi ở
Hải Phòng
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
1 cách:
PHP:
Sub Test()
    Dim LR As Long
    LR = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row: [L8] = 1
    Sheet1.Range("L9:L" & LR).Formula = "=IF(COUNTIF($E$8:E9,E9)>1,"""",(MAX($L$8:L8)+1))"
    With Range("A7:L" & LR)
        .AutoFilter 12, ""
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
    Columns(12).ClearContents
End Sub
 

caonguyen89

Thành viên mới
Tham gia ngày
26 Tháng sáu 2018
Bài viết
39
Được thích
4
Điểm
0
Bạn dùng privo table để lấy ra dữ liệu duy nhất ở cột E, sau đó, dùng nó để vlookup lại dữ liệu ở sheet ban đầu ấy, sao cứ phải dùng code
mình đang làm code rồi, giờ cần loại đi dữ liệu trùng nên bổ xung thôi
Bài đã được tự động gộp:

1 cách:
PHP:
Sub Test()
    Dim LR As Long
    LR = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row: [L8] = 1
    Sheet1.Range("L9:L" & LR).Formula = "=IF(COUNTIF($E$8:E9,E9)>1,"""",(MAX($L$8:L8)+1))"
    With Range("A7:L" & LR)
        .AutoFilter 12, ""
        .Offset(1).SpecialCells(12).EntireRow.Delete
        .AutoFilter
    End With
    Columns(12).ClearContents
End Sub
cám ơn ak.

không biết đến việc ghép hàm vào code. đoạn này rất bổ ích với em
 

XuanThanh

Thành viên thường trực
Tham gia ngày
20 Tháng ba 2007
Bài viết
278
Được thích
373
Điểm
0
Nếu dùng VBA

Mã:
Sub Xoa()
    Application.ScreenUpdating = False
    Dim n As Long, i As Long, j As Long
    n = Sheet1.Range("E65000").End(xlUp).Row
    Sheet1.Range("L8:L" & n).Formula = "=COUNTIF($E$8:E8,E8)"    
    For j = n To 8 Step -1
        If Sheet1.Range("L" & j) > 1 Then Sheet1.Range("L" & j).EntireRow.Delete
    Next
    Sheet1.Range("L8:L" & n).ClearContents
    MsgBox "Xoa xong", , "GPE"
    Application.ScreenUpdating = True
End Sub
 

be_09

Biên Hòa, Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
9,790
Được thích
9,534
Điểm
3,168
Tuổi
63
Nơi ở
Khu phố Văn Hóa
xin chào GPE

em có tham khảo 1 bài về xóa dữ liệu trùng nhưng vẫn chưa hiểu và áp dụng được vào file của mình

vậy nhờ a chị chỉ giáo thêm, em có file đính kèm cần việc xóa dữ liệu tại đó luôn, do đã dùng advancefilter để lọc dữ liệu qua đây

điều kiện tại cột "E8:E3000 "trùng sẽ chỉ lấy 1 dòng còn lại xóa hết.

em dùng duplicate nhưng có vẻ sai sai

bác nào có Code cho em xin

tks !
Thử dùng code sau:
Mã:
Sub XoaDup()
    Sheet2.Range("A7").CurrentRegion.RemoveDuplicates _
    Columns:=5, Header:=xlYes
End Sub
 
Quảng cáo
Top Bottom