Không thích hpkhuong xài CF. Vì mỗi lần xài là mình lại không thấy được có gì ở trong đó. Và hình như file bị lỗi gì đó.Thử CF nhá, không chơi code.
Đúng, em đang sài Office 2007. Ở khu vực này kiếm cái đĩa đó sao mà khó thế anh ạ!Về đến HN thì muộn không ai bán. Thui, chủ nhật này em phải lang thang thu đô mua thui...! Hi...Nhớ vụ bữa topic kia. Teamview xử cho e ý. Nhưng .........trong khi làm thì phát hiện ra 1 điều rằng...........Office 2007 không thể CF so sánh dữ liệu giữa 2 worksheet khác nhau.........Hình như trong 1 sheet mới cho phép đặt điều kiện ý.
Cho nên chủ topic này chắc cũng là Office 2007 rồi...........
Thành thật........nên nâng cấp lên cả đi...............2010 hoặc cao hơn...........kakaka
Xài CF thì xài Countif là ra rồi. Muốn code thì cho bạn code này:Đúng, em đang sài Office 2007. Ở khu vực này kiếm cái đĩa đó sao mà khó thế anh ạ!Về đến HN thì muộn không ai bán. Thui, chủ nhật này em phải lang thang thu đô mua thui...! Hi...
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
End If
Next J
Next
End With
End Sub
Đúng là bất cập nằm ở đấy. Cho nên lý do không thấy được cũng do nguyên nhân nàyNhớ vụ bữa topic kia. Teamview xử cho e ý. Nhưng .........trong khi làm thì phát hiện ra 1 điều rằng...........Office 2007 không thể CF so sánh dữ liệu giữa 2 worksheet khác nhau.........Hình như trong 1 sheet mới cho phép đặt điều kiện ý.
Xài CF thì xài Countif là ra rồi. Muốn code thì cho bạn code này:
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 End If Next J Next End With End Sub
Bữa nay thấy cái avatar "hot" như kia "mạnh" là phải rồi. Cách thì có nhưng không biết làm. Để dành cho hpkhuong vậy.có vẻ mạnh mẽ . hí hí
nhưng có cách nào không dùng vòng lặp không ta ? hi hi
Nếu muốn xài vòng lặp thì viết ra thêm 1 function đếm đi thay cho thằng countif rồi áp dụng vào là okcó vẻ mạnh mẽ . hí hí
nhưng có cách nào không dùng vòng lặp không ta ? hi hi
dạ em chưa hiểu lắm , anh có thể demo cái function đó dùm em được không anh . cám ơnNếu muốn xài vòng lặp thì viết ra thêm 1 function đếm đi thay cho thằng countif rồi áp dụng vào là ok
dạ em chưa hiểu lắm , anh có thể demo cái function đó dùm em được không anh . cám ơn
mình ít khi viết bài hỏi trên diễn đàn . nhưng 1 khi đã hỏi thì không ai thèm xem sầu đời quá nên đổi mới ti vi vậy mà .chà, doveandrose hôm nay có cái avata "bốc" quá ta!!!
thay vì viết If Application.WorksheetFunction.CountIf(Sheet1.Range("A1:C250"), Sheet2.Range("A" & I).Offset(, J - 1)) = 0dạ em chưa hiểu lắm , anh có thể demo cái function đó dùm em được không anh . cám ơn
ủa vậy là anh hiểu nhầm ý em thì phải . em hỏi là ở trên có 2 cái vòng lặp lồng nhauthay vì viết If Application.WorksheetFunction.CountIf(Sheet1.Range("A1:C250"), Sheet2.Range("A" & I).Offset(, J - 1)) = 0
thì viết ra riêng cho mình 1 cái Function đếm là ok
Xài CF thì xài Countif là ra rồi. Muốn code thì cho bạn code này:
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 End If Next J Next End With End Sub
Sửa lại như thế này nhé: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 ạ?
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
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.Đ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.............
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?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.
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