mình muốn đếm có bao nhiêu số có màu đỏ, nhưng hàm mình viết bị lỗi hoài. Các bạn nào biết thì giúp mình nhé. Thanks các bạn nhiều. đây là file đính kèm của mình.
Dùng VBA thôi:mình muốn đếm có bao nhiêu số có màu đỏ, nhưng hàm mình viết bị lỗi hoài. Các bạn nào biết thì giúp mình nhé. Thanks các bạn nhiều. đây là file đính kèm của mình.
Private Sub Worksheet_Activate()
Dim r1 As Range
Dim i As Integer
i = 0
For Each r1 In Range("b5:e10")
If r1.Font.ColorIndex = 3 Then i = i + 1
Next
[g10].Value = i
End Sub
Function Demmau(rng As Range, mau as integer) As Integer
Dim r1 As Range
Dim i As Integer
i = 0
For Each r1 In rng
If r1.Font.ColorIndex = mau Then i = i + 1
Next
Demmau = i
End Function
=Demmau(H1:J9,3)
Nếu viết thành hàm thì nên tổng quát chút.từ bài bebo tôi viết riêng ra function
ví dụPHP:Function Demmau(rng As Range) As Integer Dim r1 As Range Dim i As Integer i = 0 For Each r1 In rng If r1.Font.ColorIndex = 3 Then i = i + 1 Next Demmau = i End Function
PHP:=Demmau(H1:J9)
Hổng phải vậy! Ý tôi là hàm sẽ có cú pháp đại khái như sau:Chắc bác ndu giúp dùng bảng màu trong VBA quá chứ hiện tại em chưa biết bảng màu đó theo thứ tự như thế nào nữa, xin cảm ơn
Làm như sau:vậy bác chỉ giúp em cách sử dụng hàm tự tạo nha, em chưa dùng bao giờ nên không biết.
Function CountColor(ByVal SrcRng As Range, CriteriaColor As Range, Optional Opt As Boolean = False) As Long
Dim Clls As Range, lTmp As Long
On Error Resume Next
Application.Volatile
For Each Clls In SrcRng
If Opt Then
If Clls.Interior.ColorIndex = CriteriaColor.Interior.ColorIndex Then lTmp = lTmp + 1
Else
If Clls.Font.ColorIndex = CriteriaColor.Font.ColorIndex Then lTmp = lTmp + 1
End If
Next
CountColor = lTmp
End Function
Hàm thì làm theo ndu, màu điều kiện lấy từ 1 ô nào đó.Chắc bác ndu giúp dùng bảng màu trong VBA quá chứ hiện tại em chưa biết bảng màu đó theo thứ tự như thế nào nữa, xin cảm ơn
Đúng là tôi có sơ suất!Bác ndu ơi, em làm thử theo công thức bác cho thì được. nhưng em áp dụng như vậy cho các bài tương tự như vậy thì không được, trả lại kết quả sai. Nhờ bác giúp em nhé, File đính kèm của em đây, file này e dùng để tính công cho công nhân. Bác giúp em nhé, cảm ơn bác nhiều.
Function CountColor(ByVal SrcRng As Range, CriteriaColor As Range, Optional Opt As Boolean = False) As Long
Dim Clls As Range, lTmp As Long
On Error Resume Next
Application.Volatile
For Each Clls In SrcRng
If Opt Then
If Clls.Interior.ColorIndex = CriteriaColor.Interior.ColorIndex Then lTmp = lTmp + 1
Else
If Clls <> "" Then
If Clls.Font.ColorIndex = CriteriaColor.Font.ColorIndex Then lTmp = lTmp + 1
End If
End If
Next
CountColor = lTmp
End Function