Tô màu dữ liệu trùng lặp bằng VBA

Liên hệ QC

@PiPi@

Thành viên mới
Tham gia
3/11/19
Bài viết
5
Được thích
0
Tô màu dữ liệu trùng lặp bằng VBA không dùng duplicate
 

File đính kèm

  • loc trung.xlsm
    8.9 KB · Đọc: 26
PHP:
Sub ToMauDoDuLieuTrung()
 Dim WF As Object, Rng As Range, sRng As Range
 Dim Dem As Integer, fNum As Integer, lNum As Integer, J As Long, MyColor As Integer
 Dim MyAdd As String
 
 Set WF = Application.WorksheetFunction:    MyColor = 34
 Set Rng = Sheet1.UsedRange:                ' MsgBox Rng.Address    '
 fNum = WF.Min(Rng):                        lNum = WF.Max(Rng)
 For J = fNum To lNum
    Set sRng = Rng.Find(J, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            Dem = Dem + 1
            If Dem > 1 Then
                MyColor = MyColor + 1
                If MyColor > 41 Then MyColor = 34
                sRng.Interior.ColorIndex = MyColor
            End If
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
        If Dem > 1 Then sRng.Interior.ColorIndex = MyColor
        If Dem > 0 Then Dem = 0
    End If
 Next J
End Sub

)(in mời $$$$@
 
PHP:
Sub ToMauDoDuLieuTrung()
Dim WF As Object, Rng As Range, sRng As Range
Dim Dem As Integer, fNum As Integer, lNum As Integer, J As Long, MyColor As Integer
Dim MyAdd As String

Set WF = Application.WorksheetFunction:    MyColor = 34
Set Rng = Sheet1.UsedRange:                ' MsgBox Rng.Address    '
fNum = WF.Min(Rng):                        lNum = WF.Max(Rng)
For J = fNum To lNum
    Set sRng = Rng.Find(J, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            Dem = Dem + 1
            If Dem > 1 Then
                MyColor = MyColor + 1
                If MyColor > 41 Then MyColor = 34
                sRng.Interior.ColorIndex = MyColor
            End If
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
        If Dem > 1 Then sRng.Interior.ColorIndex = MyColor
        If Dem > 0 Then Dem = 0
    End If
Next J
End Sub

)(in mời $$$$@
Chào Bác1
Bác cho cháu hỏi là nếu như là cả text lẫn số thì phải sửa code như thế nào à?
·
 
1./ Thông thường nếu dữ liệu tương đối chuẩn thì trong 1 cột hiếm có 2 kiểu dữ liệu

2./ Yêu cầu của bạn không phải là không làm được, & phải dùng những loại dao bén hơn phương thức FIND()
 
1./ Thông thường nếu dữ liệu tương đối chuẩn thì trong 1 cột hiếm có 2 kiểu dữ liệu

2./ Yêu cầu của bạn không phải là không làm được, & phải dùng những loại dao bén hơn phương thức FIND()
Vâng. Ý cháu là giống như các loại mã vậy. Có mã là chữ và số có mã chỉ là số. Có mã lại chỉ toàn chữ. Thấy bác làm code kia là cho kiểu dữ liệu số nên hỏi ạ
 
Vâng. Ý cháu là giống như các loại mã vậy. Có mã là chữ và số có mã chỉ là số. Có mã lại chỉ toàn chữ. Thấy bác làm code kia là cho kiểu dữ liệu số nên hỏi ạ

(/ới mình thì nguyên tắc bất di bất dịch là:
Mã có độ dài như nhau & tuyệt nhiên cùng 1 kiểu dữ liệu
Như ví dụ sau:
Nếu kiểu số thì là
10000​
10001​
10002​
10003​
10004​
10005​
10006​
10007​
Nếu kiểu chuỗi thì nên là
NVH00Ngô Việt Hồng
NVH01Như Thị Việt Hà
NVH02Nhâm Viết Hòa
NVH03Nguyễn Vĩnh Hằng
DFD00Dương Đưc Dũng
DJC00Dương Cường
FFD00Đỗ Đức Dung
Có vậy ngõ hầu CSDL ta không trở thành đống rác.
 
Dùng thử code sau cho tất cả các trường hợp.
cảm ơn bác,code chạy tốt bác ạ
Bài đã được tự động gộp:

(/ới mình thì nguyên tắc bất di bất dịch là:
Mã có độ dài như nhau & tuyệt nhiên cùng 1 kiểu dữ liệu
Như ví dụ sau:
Nếu kiểu số thì là
10000​
10001​
10002​
10003​
10004​
10005​
10006​
10007​
Nếu kiểu chuỗi thì nên là
NVH00Ngô Việt Hồng
NVH01Như Thị Việt Hà
NVH02Nhâm Viết Hòa
NVH03Nguyễn Vĩnh Hằng
DFD00Dương Đưc Dũng
DJC00Dương Cường
FFD00Đỗ Đức Dung
Có vậy ngõ hầu CSDL ta không trở thành đống rác.
vâng cảm ơn bác góp ý,chắc mã theo kiểu của bác thì dễ quản lý hơn
Bài đã được tự động gộp:

hai bác cho hỏi là hình như các cao thủ viết code hay để Option Explicit ở trong các sheet mặc dù ở trong hai sheet đấy không có code ,cái này có tác dụng gì vậy hai bác?
 
Lần chỉnh sửa cuối:
Chưa tốt đâu, sai ở chỗ có dấu ?
em chưa xem tới phần đấy nữa, code của bác @SA_DQ thì chạy hết các cột trong bảng tính không giới hạn vùng chọn,còn code của bác @be09 thì có giới hạn vùng chọn nhưng khi có khoảng trống ở giữa hai cột thì những phàn ở dưới sẽ không có tác dụng vì bị ngắt quãng
 
em chưa xem tới phần đấy nữa, code của bác @SA_DQ thì chạy hết các cột trong bảng tính không giới hạn vùng chọn,còn code của bác @be09 thì có giới hạn vùng chọn nhưng khi có khoảng trống ở giữa hai cột thì những phàn ở dưới sẽ không có tác dụng vì bị ngắt quãng
Bài 1 bạn không nêu cụ thể, rõ ràng là dữ liệu có những dòng trống cột trống, do đó thấy File thế nào thì làm thế ấy chứ ai biết được sự đời nó thế nào?
 
Bài 1 bạn không nêu cụ thể, rõ ràng là dữ liệu có những dòng trống cột trống, do đó thấy File thế nào thì làm thế ấy chứ ai biết được sự đời nó thế nào?
vâng chắc chủ thớt thấy nhiêu đấy yêu cầu là đủ rồi bác ạ
 
Em xin cảm ơn giaiphapexcel.com có những con người thật tuyệt vời ạ. giúp ích rất nhiều cho mọi người ạ
 
Web KT
Back
Top Bottom