Xóa các dòng dữ liệu trùng (1 người xem)

Liên hệ QC

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

huyendoan80

Thành viên mới
Tham gia
12/5/11
Bài viết
11
Được thích
0
Nhờ các anh chị giúp em cách xóa dòng dữ liệu có định dạng strikethrough theo file mẫu kèm theo. Vì số lượng các dòng dữ liệu của em nhiều nên khi thực hiện thủ công thì rất mất thời gian. Em xin cảm ơn.
 

File đính kèm

Nhờ các anh chị giúp em cách xóa dòng dữ liệu có định dạng strikethrough theo file mẫu kèm theo. Vì số lượng các dòng dữ liệu của em nhiều nên khi thực hiện thủ công thì rất mất thời gian. Em xin cảm ơn.

Bạn sử dụng chức năng Remove Duplicates xem sao.
 
Nhờ các anh chị giúp em cách xóa dòng dữ liệu có định dạng strikethrough theo file mẫu kèm theo. Vì số lượng các dòng dữ liệu của em nhiều nên khi thực hiện thủ công thì rất mất thời gian. Em xin cảm ơn.


Bạn thử đoạn code này:

Sub xoa()
For i = 2 To 20
If Range("A" & i).Font.Strikethrough = True Then
Range("A" & i & ":C" & i).Delete
End If
Next i
End Sub
 
Cảm ơn bạn. Mình đã dùng chức năng Remove Duplicates nhưng đối với trường hợp có nhiều dòng trùng đã định dạng strikethrough thì khi chạy vẫn còn tồn tại lại 1 dòng. Ý là mình muốn xóa hẳn những dòng dữ liệu này luôn bạn ạ.
 
Cảm ơn bạn. Mình đã dùng chức năng Remove Duplicates nhưng đối với trường hợp có nhiều dòng trùng đã định dạng strikethrough thì khi chạy vẫn còn tồn tại lại 1 dòng. Ý là mình muốn xóa hẳn những dòng dữ liệu này luôn bạn ạ.

Bạn thử code bài #3 bên trên thử xem
 
Code của bạn, nếu dữ liệu có 2 dòng trở lên cùng Font.Strikethrough thì nó sẽ ko xóa hết (bỏ lại ít nhất 1 dòng). Theo mình làm kiểu này bạn nên duyệt từ dưới lên thay vì từ trên xuống.

Ý bạn là sao mình thấy chưa hiểu lắm, mình thử trong File của bạn chủ thớt thấy xóa được hết mà
 
Ý bạn là sao mình thấy chưa hiểu lắm, mình thử trong File của bạn chủ thớt thấy xóa được hết mà

Uhm, bạn thử để 2 hay 3 hoặc nhiều hơn dòng dữ liệu có font Strikethrough cạnh nhau (liên tiếp nhau) và chạy sub xem nó xóa ra sao là hiểu ngay mà.
 
Uhm, bạn thử để 2 hay 3 hoặc nhiều hơn dòng dữ liệu có font Strikethrough cạnh nhau (liên tiếp nhau) và chạy sub xem nó xóa ra sao là hiểu ngay mà.

Đúng như bạn nói, mình đã Te st thử, nếu có từ 2 dòng liên tiếp nhau cùng bị gạch ngang nó sẽ không xóa hết sau lần chạy code đầu tiên, mà ta phải bấm F5 thêm 1 vài lần nữa nó mới xóa hết được. Vấn đề là mình không hiểu sao lại bị vậy, bạn giải thích cho mình được khong và Bạn có cách nào để khắc phục nó không.
 
Đúng như bạn nói, mình đã Te st thử, nếu có từ 2 dòng liên tiếp nhau cùng bị gạch ngang nó sẽ không xóa hết sau lần chạy code đầu tiên, mà ta phải bấm F5 thêm 1 vài lần nữa nó mới xóa hết được. Vấn đề là mình không hiểu sao lại bị vậy, bạn giải thích cho mình được khong và Bạn có cách nào để khắc phục nó không.

Thì mình đã nói ở trên rồi đấy thôi. Với kiểu làm này (xóa dòng trên range) thì bạn dùng vòng lặp duyệt từ dòng cuối dữ liệu lên đầu thay vì duyệt từ trên xuống.
Vì khi gặp cell thỏa điều kiện "nó" xóa dòng và dòng tiếp theo sẽ đc co lên (giống như bạn xóa dòng bằng tay ấy)--> sẽ sinh ra lỗi này.
Hoặc cách khác là làm các thao tác trên mảng thì duyệt kiểu gì cũng đc chỉ cần nhặt ra những cái mình cần lấy sau đó gán xuống sheet.
 
Nhờ các anh chị giúp em cách xóa dòng dữ liệu có định dạng strikethrough theo file mẫu kèm theo. Vì số lượng các dòng dữ liệu của em nhiều nên khi thực hiện thủ công thì rất mất thời gian. Em xin cảm ơn.
Code xóa 1 phát hết luôn này( theo ý của mhung12005)
PHP:
Sub Xoa2()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    For i = LR To 1 Step -1
        If Range("A" & i).Font.Strikethrough = True Then
            Rows(i).Delete
        End If
    Next
End Sub
 
Web KT

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

Back
Top Bottom