Các bạn cho mình hỏi làm sao xóa được số trùng nhau

Liên hệ QC

congnguyen88

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/7/14
Bài viết
356
Được thích
31
Chào các bạn. Mình có 1 file quản lý tên hàng của công ty. Do mã hàng nó sắp xếp trùng nhau. Mình muốn xóa những mã hàng nào trùng phía dưới chỉ chừa lại 1 mã hàng nằm trên cùng làm đại diện thôi. CHo mình hỏi Code viết làm sao để xóa được. Em xin cảm ơn anh chị

1584869128179.png
 
Vậy là bác lại hiểu nhầm rồi. Cột C đó mình không quan tâm. mình chỉ quan tâm cột mã hàng ( cột B) thôi, Nếu trùng cột B thì xóa dòng của cột B và xóa luôn dòng của cột C luôn bác ạ
Em ví dụ bảng tính có 4 cột. Thì kiểm tra cột Mã nếu trùng thì xóa. mà đã xóa cột Mã thì mấy dòng của cột còn lại cũng phải xóa luôn bác ạ
Mỗi bài viết bạn đưa ra một kiểu hình nhưng không nêu cụ thể, rõ ràng cái mình muốn thực hiện thì tất cả các thành viên đều thấy, biết và hiểu như tôi, cụ thể:
1/ Bài 1, bài 3, bài 6 bạn đưa cái hình dữ liệu chỉ có 1 cột đó là B với tiêu đề ở dòng 4 và nội dung là thế này "muốn xóa những mã hàng nào trùng phía dưới chỉ chừa lại 1 mã hàng nằm trên cùng".
2/ Đến bài 12 bạn đưa cái hình dữ liệu có thêm cột ngày (là 2 cột) với tiêu đề ở dòng 2 và nội dung là thế này "nếu đã xóa mã hàng thì xóa luôn ô cột ngày".
3/ Đến bài 14 thì hình vẫn có 2 cột như bài 12 nhưng ngày của từng Cell trong cột C khác với bài 12.
4/ Đến bài 17 thì hình vẫn có 2 cột như bài 12, bài 14 nhưng cột ngày của từng Cell trong cột C dữ liệu lại giả định và có trình tự liên tục.
5/ Đến bài 19 thì hình có 4 cột với tiêu đề ở dòng 3 và nội dung là thế này "dựa vào cột mã hàng (cột B) thôi, Nếu cột B có mã hàng trùng thì xóa dòng" nhưng đưa cái hình thì xóa dữ liệu từ cột B tới cột C.

Tóm lại:
- Về xóa nội dung trùng lặp: Lúc thì bạn muốn trong 1 cột, lúc thì 2 cột, lúc thì 4 cột và dữ liệu mỗi lần đưa lên cũng khác nhau.
- Về tiêu đề cột: Mỗi lần đưa lên cũng khác nhau, lúc thì dòng 2, lúc thì dòng 3, lúc thì dòng 4.

Nói chung:
- Bạn hay phát sinh những thứ không đáng có, dù cho bạn có đưa File giả định nhưng tiêu đề phải sát thực tế giống với File đang theo dõi.
- Muốn xóa dữ liệu ở những cột nào thì phải nêu rõ ràng, cụ thể từ đấu bài 1, nhưng bạn không cụ thể mà phát sinh liên tục.
- Đến bài 19 thì muốn xóa dữ liệu ở 4 cột không biết giúp xong có phát sinh thêm xóa cột cách quãng nữa không (tôi lường trước vụ này nên chạy trước).
 
Upvote 0
anh ơi cho em hỏi em muốn xóa thêm 1 cột bên trái nữa ( cột ngày ) thì phải sửa code thế nào.
Em không biết thêm Resize vào chổ nào nữa.
Chỉ chọn cột Mã rồi chạy code
PHP:
Sub XoaTrung()
Dim cel As Range
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")

For Each cel In Selection
    If Not Dic.exists(cel.Value) Then
        Dic.Add cel.Value, ""
    Else
        cel.Resize(1, 2).ClearContents
    End If
Next

End Sub
Muốn xóa 4 cột liên tiếp, sửa thành:
cel.Resize(1, 4).ClearContents
 
Upvote 0
Chỉ chọn cột Mã rồi chạy code
PHP:
Sub XoaTrung()
Dim cel As Range
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")

For Each cel In Selection
    If Not Dic.exists(cel.Value) Then
        Dic.Add cel.Value, ""
    Else
        cel.Resize(1, 2).ClearContents
    End If
Next

End Sub
Muốn xóa 4 cột liên tiếp, sửa thành:
cel.Resize(1, 4).ClearContents

Dạ em cảm ơn anh thật sự a trả lời quá đúng ý e luôn, e muốn 2 3 4..n cột gì gì đó thì em biết sửa lại code rồi. cảm ơn anh nhiều
Bài đã được tự động gộp:

Mỗi bài viết bạn đưa ra một kiểu hình nhưng không nêu cụ thể, rõ ràng cái mình muốn thực hiện thì tất cả các thành viên đều thấy, biết và hiểu như tôi, cụ thể:
1/ Bài 1, bài 3, bài 6 bạn đưa cái hình dữ liệu chỉ có 1 cột đó là B với tiêu đề ở dòng 4 và nội dung là thế này "muốn xóa những mã hàng nào trùng phía dưới chỉ chừa lại 1 mã hàng nằm trên cùng".
2/ Đến bài 12 bạn đưa cái hình dữ liệu có thêm cột ngày (là 2 cột) với tiêu đề ở dòng 2 và nội dung là thế này "nếu đã xóa mã hàng thì xóa luôn ô cột ngày".
3/ Đến bài 14 thì hình vẫn có 2 cột như bài 12 nhưng ngày của từng Cell trong cột C khác với bài 12.
4/ Đến bài 17 thì hình vẫn có 2 cột như bài 12, bài 14 nhưng cột ngày của từng Cell trong cột C dữ liệu lại giả định và có trình tự liên tục.
5/ Đến bài 19 thì hình có 4 cột với tiêu đề ở dòng 3 và nội dung là thế này "dựa vào cột mã hàng (cột B) thôi, Nếu cột B có mã hàng trùng thì xóa dòng" nhưng đưa cái hình thì xóa dữ liệu từ cột B tới cột C.

Tóm lại:
- Về xóa nội dung trùng lặp: Lúc thì bạn muốn trong 1 cột, lúc thì 2 cột, lúc thì 4 cột và dữ liệu mỗi lần đưa lên cũng khác nhau.
- Về tiêu đề cột: Mỗi lần đưa lên cũng khác nhau, lúc thì dòng 2, lúc thì dòng 3, lúc thì dòng 4.

Nói chung:
- Bạn hay phát sinh những thứ không đáng có, dù cho bạn có đưa File giả định nhưng tiêu đề phải sát thực tế giống với File đang theo dõi.
- Muốn xóa dữ liệu ở những cột nào thì phải nêu rõ ràng, cụ thể từ đấu bài 1, nhưng bạn không cụ thể mà phát sinh liên tục.
- Đến bài 19 thì muốn xóa dữ liệu ở 4 cột không biết giúp xong có phát sinh thêm xóa cột cách quãng nữa không (tôi lường trước vụ này nên chạy trước).

dạ em cảm ơn bác, chắc do em không biết cách nói cho bác hiểu được. Mà code bạn Phươc Cam đã giúp vậy là hoàn toàn đúng ý em rồi. Chỉ khác mổi e muốn xóa 1 ,2,3,4.. cột thì phải thay đổi được số cột là xong, Còn kiểm tra vẩn kiểm tra trên cột B có trùng hay không thôi
Mã:
Sub XoaTrung()
On Error Resume Next
Dim cel As Range
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
Application.ScreenUpdating = False
For Each cel In Range("B3:B5000") ' Chi kiem tra tren cot B thoi
    If Not Dic.exists(cel.Value) Then
        Dic.Add cel.Value, ""
    Else
        cel.Resize(1, 2).ClearContents ' Cho nay 2 la 2 cot, e muon 4 cot hay n cot la em thay so Vi tri nay
    End If
Next
Application.ScreenUpdating = True

End Sub
 
Upvote 0
Bạn thay
Mã:
   cel.Resize(1, 2).ClearContents
thành
Mã:
cel.EntireRow.ClearContents 'Cái này xóa nguyên 1 dòng cho khỏe

dạ thì đó em chỉ hỏi vậy thôi. cảm ơn Chị . chỉ mỏi thắc mắc thay vì xóa 1 ô cột B em muốn nó xóa luôn các dòng với nó luôn . Nhưng em chỉ áp dụng cái
cel.Resize(1, n).ClearContents ' trong đó n là số cột cần xóa
do File em còn làm mấy công thức vớ vấn phía bên Phải bảng tính nên không dùng code của chị được.
 
Upvote 0
Web KT
Back
Top Bottom