Sub 考勤()
For i = 2 To 31 '假设有30位员工
m = 1
For x = 2 To 32 '每月31天
If Cells(x, i) <> "正常班" Then
Cells(x, i) = m: m = m + 1
Else: m = 1
End If
Next
Next
For i = 2 To 31
Cells(x, i).FormulaR1C1 = "=MAX(R[-31]C:R[-1]C)"
Cells(x + 1, i).FormulaR1C1 = _
"=COUNTA(R[-32]C:R[-2]C)-COUNTIF(R[-32]C:R[-2]C,""正常班"")"
Next
End Sub
给你编了个小宏,能解决问题。时间不早了,自己先看看怎么用。不懂再问
补充:用宏,可以有针对性的解决问题。这段宏再加上个快捷键,一键完毕。
最后两行是加了两个公式,按每月31天(最大)统计总计请假天数,最大连续天数。在天数少的月份,做帆你可以自己删掉最后多出携唯的行辩胡培。
用公式太麻烦了,每个格都要有公式,一旦弄错,也不好改
b15=if(b2="正常班",b2,if(a15=1,1,if(b14="正常班",1,b14+1)))