Code tìm kiếm và so sánh dữ liệu

Liên hệ QC

bebeen

Thành viên thường trực
Tham gia
13/2/12
Bài viết
213
Được thích
24
Em muốn nhờ AC thiết lập cho em code tìm kiếm và so sánh dữ liệu. Câu hỏi cụ thể trong file đính kèm!
Cám ơn AC nhiều!
 

File đính kèm

  • Finding Data.rar
    13.6 KB · Đọc: 19
Nếu dùng cái này, khi chạy code rồi nó cho kết quả đúng ý em. Nhưng em muốn chưa thấy thỏa mãn vì: Nếu Chạy code nó sẽ tìm ra mã sai và tô màu. Khi mình sửa mã đó cho đúng và chạy lại code thì nó vẫn giữ màu đã tô mà không trở về trạng thái bình thường như khi nó là đúng? Vậy code này phải sửa lại như thế nào ạ?
Sửa lại như thế này nhé:
Mã:
Sub ToMau()
Dim I, J
With Sheet2
   For I = 5 To .Range("A" & Rows.Count).End(3).Row
    For J = 1 To 3
      If Application.WorksheetFunction.CountIf(Sheet1.Range("A1:C250"), Sheet2.Range("A" & I).Offset(, J - 1)) = 0 Then
       .Range("A" & I).Offset(, J - 1).Font.Bold = True
       .Range("A" & I).Offset(, J - 1).Font.Color = -16776961
      Else
       .Range("A" & I).Offset(, J - 1).Font.Bold = False
       .Range("A" & I).Offset(, J - 1).Font.ThemeColor = xlThemeColorLight1
      End If
    Next J
   Next I
 End With
End Sub
P/s: Sao không ai làm cách mà "chim hồng" đang muốn nhỉ. Cách đó cũng rất hay và gọn.
 
Lần chỉnh sửa cuối:
Upvote 0
Sửa lại như thế này nhé:
Mã:
Sub ToMau()
Dim I, J
With Sheet2
   For I = 5 To .Range("A" & Rows.Count).End(3).Row
    For J = 1 To 3
      If Application.WorksheetFunction.CountIf(Sheet1.Range("A1:C250"), Sheet2.Range("A" & I).Offset(, J - 1)) = 0 Then
       .Range("A" & I).Offset(, J - 1).Font.Bold = True
       .Range("A" & I).Offset(, J - 1).Font.Color = -16776961
      Else
       .Range("A" & I).Offset(, J - 1).Font.Bold = False
       .Range("A" & I).Offset(, J - 1).Font.ThemeColor = xlThemeColorLight1
      End If
    Next J
   Next I
 End With
End Sub
P/s: Sao không ai làm cách mà "chim hồng" đang muốn nhỉ. Cách đó cũng rất hay và gọn.

Đoạn này
Mã:
For I = 5 To .Range("A" & Rows.Count).End(3).Row

Nếu dòng cuối của cột A mà nhỏ hơn cột B, hoặc C thì tèo téo teo.............
 
Upvote 0
Đoạn này
Mã:
For I = 5 To .Range("A" & Rows.Count).End(3).Row

Nếu dòng cuối của cột A mà nhỏ hơn cột B, hoặc C thì tèo téo teo.............
Vấn đề này để chủ topic tự tùy biến. Dữ liệu của người khác thay đổi như thế nào sao mình biết được mà lần.
 
Upvote 0
Vấn đề này để chủ topic tự tùy biến. Dữ liệu của người khác thay đổi như thế nào sao mình biết được mà lần.
Số liệu ở sheet DATA thực tế không phải là số liệu như vậy. Nó sẽ không tăng đều và đủ 7 ký tự mỗi ô ạ! Vậy nó có ảnh hưởng gì không?
 
Upvote 0
Góp thêm cách không vòng lặp dữ liệu sheet DATA chuyển qua 3 cột O, P, Q sheet FIND
Mã:
Sub ToMau()
    With Sheet2
      .[A5].Select
      .Range("A5:C14").FormatConditions.Delete
           With Range("A5:C14").FormatConditions.Add( _
                Type:=xlExpression, _
                Formula1:="=Countif($O$1:$Q$250,A5)=0")
               .Font.Color = -16776961
           End With
    End With
End Sub
 
Upvote 0
Số liệu ở sheet DATA thực tế không phải là số liệu như vậy. Nó sẽ không tăng đều và đủ 7 ký tự mỗi ô ạ! Vậy nó có ảnh hưởng gì không?
For I = 5 To .Range("A" & Rows.Count).End(3).Row
Chỗ bôi đỏ cột nào có số lượng dòng lớn nhất thì đổi thành tên cột đó là không vấn đề gì.
 
Upvote 0
Góp thêm cách không vòng lặp dữ liệu sheet DATA chuyển qua 3 cột O, P, Q sheet FIND
Mã:
Sub ToMau()
    With Sheet2
      .[A5].Select
      .Range("A5:C14").FormatConditions.Delete
           With Range("A5:C14").FormatConditions.Add( _
                Type:=xlExpression, _
                Formula1:="=Countif($O$1:$Q$250,A5)=0")
               .Font.Color = -16776961
           End With
    End With
End Sub

hay quá anh ơi . anh này pro nè }}}}}}}}}}}}}}}
 
Upvote 0
Góp thêm cách không vòng lặp dữ liệu sheet DATA chuyển qua 3 cột O, P, Q sheet FIND
Mã:
Sub ToMau()
    With Sheet2
      .[A5].Select
      .Range("A5:C14").FormatConditions.Delete
           With Range("A5:C14").FormatConditions.Add( _
                Type:=xlExpression, _
                Formula1:="=Countif($O$1:$Q$250,A5)=0")
               .Font.Color = -16776961
           End With
    End With
End Sub

Úi úi...........anh ý dùng CF ...............mà 2007 không chạy được nên ảnh đưa sang cùng 1 sheet..................kakaka
 
Upvote 0
Web KT
Back
Top Bottom