我正在Excel中创建日历/日程安排工作簿。 所有工作日都是蓝色的,周末的日子是红色的。
我需要做的一件事是计算一个人工作的工作日(bue cell)的数量,但没有星期五(也是蓝色单元格,但在红色单元格之上(星期六))。
计算一个人的工作日总数(蓝色单元格)是没有问题的:
Function CountCcolor(range_data As Range, criteria1 As Range, criteria2 As Range) As Long
Dim datax As Range
Dim xcolor As Long
xcolor = criteria1.Interior.ColorIndex
radiologist = criteria2.Value
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor And datax.Value = radiologist Then CountCcolor = CountCcolor + 1
End If
Next datax
End Function
这包括星期五,我不想要。
是否可以扩展此代码以排除所有正好位于红色单元格上方的蓝色单元格?
答案 0 :(得分:0)
使用Range.Offset property检查循环中单元格正下方的单元格。
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor And _
datax.OFFSET(1, 0).Interior.ColorIndex = xcolor And _
datax.Value = radiologist Then
CountCcolor = CountCcolor + 1
End If
Next datax