Chào Thầy và các bạn, e đang vướng đếm sô ô không màu trong bảng chấm công, khi chạy code thì hàm tính luôn cả ô màu. trong bảng e có sử dụng conditional forrmat để tô màu màu T7, CN khi thay đổi tháng, nhơg Thầy giúp e với ạ!
Mình nghĩ hướng này:
Bạn nên có 1 dòng Loại ngày để phân biệt rõ ra từng loại ngày: Ngày thường, ngày nghỉ tuần, ngày lễ.
Sau đó dùng hàm COUNTIFS, SUMIFS là có thể tính được số công loại trừ các ngày nghỉ tuần, nghỉ lễ được (chỉ tính với điều kiện là ngày thường).
Khi đó việc tính toán đơn giản hơn nhiều so với dùng VBA xử lý tình huống này. Nếu dùng VBA bạn có thể làm theo cách xét theo vòng lặp Loại ngày. Bản chất vẫn gần giống với cách dùng hàm COUNTIFS, SUMIFS thôi. Hoặc dùng VBA lấy kết quả của hàm thôi (viết hàm vào ô đầu tiên, filldown, sau đó chỉ lấy kết quả và bỏ công thức đi)
Chào bạn bạn làm như sau với vba
Sub dem_T7_CN()
Application.ScreenUpdating = False
Range("al5").ClearContents
Dim i As Integer
For i = 4 To 34
If Cells(6, i).Value = "" Then
Exit Sub
ElseIf WorksheetFunction.Weekday(Cells(6, i)) = 7 Or _
WorksheetFunction.Weekday(Cells(6, i)) = 1 Then
Range("al5").Value = Range("al5").Value + 1
End If
Next i
Application.ScreenUpdating = True
End Sub