现有一份考勤记录表,需要计算出每个员工,每天上班总工时,加班工时。某公司上班时间 8:00-11.30 下午 12:30-17:00 晚上17:30后算加班。
那么接下来介绍通过Excel的宏功能实现工时自动计算功能。最终成品效果如下:
功能设计思路:
- 根据考勤日期获取当月天数,并自动填充为列头
- 根据考勤明细获取全部员工数,并自动填充,格式(部门,姓名,数据项目[上班时间,下班时间,上班工时,加班工时])
- 根据已获取到的员工明细,依次获取考勤打卡时间,并与日期对应
- 通过运算规则计算出上班总工时,加班工时。到此整个功能完成
代码实现:
Sub CreateKaoQin()
Dim 月份 As Date
Dim iDay As Integer
Dim i, j, k, 总人数 As Double
Dim 结果起始行 As Double
Dim 数据表 As String
Dim 数据表起始行 As Double
Dim 数据表结束行 As Double
Dim 部门 As String
Dim 姓名 As String
Dim 旧部门 As String
Dim 旧姓名 As String
Dim 结果当前行 As Double
Dim 数据表日期 As Date
Dim 上班时间 As Date
Dim 下班时间 As Date
Dim 数据表天数 As Integer
Dim 加班时间, 小时, 分钟 As Double
'清空数据区
Sheets("考勤数据").Range(Cells(4, 1), Cells(65534, 35)).Clear
结果起始行 = 3
'获取月份
月份 = CDate(Sheets("考勤数据").Range("B1").Value)
'通过月份获取当月总天数
iDay = Day(DateSerial(Year(月份), Month(月份) + 1, 1) -