求大佬帮忙写一段Excel宏代码

查看 90|回复 9
作者:zhangxm   
[color=]以下为公司的打卡数据,现在想统计员工的迟到,早退,缺勤次数,但是我不会写代码,请大佬帮忙。
[color=]一天四次卡,8.00-12.00,14.00-18.00。
[color=]上午上班8.05之后算迟到,9.05以后算缺勤,上午下班11.55之前算早退,10.55之前算缺勤;下午同理。(迟到为前后五分钟,缺勤为前后一小时)
[color=]正常班打卡,周六日与节假日休息
[color=]可能一天不止4条数据
[color=]图片如下
[color=rgba(0, 0, 0, 0.85)]https://www.123pan.com/s/MC29-5kt4h.html

大佬, 代码

zhangxm
OP
  

写一段宏代码
excel一行数据中值存在6:00到8:05的时间赋值“正常”给同一行M列,存在8:05到9:05的时间赋值“迟到”给同一行N列,不存在6:00到9:05的时间赋值“漏卡”给同一行O列,存在10:55到11:55的时间赋值“早退”给同一行P列,存在11:55到13:35的时间赋值“正常”给同一行Q列,不存在10:55到13:35的时间赋值“漏卡”给同一行R列,存在13:35到14:35的时间赋值“正常”给同一行S列,存在14:35到15:35的时间赋值“迟到”给同一行T列,不存在13:35到15:35的时间赋值“漏卡”给同一行U列,存在17:25到18:25的时间赋值“早退”给同一行V列,存在18:25到22:00的时间赋值“正常”给同一行W列,不存在17:25到22:00的时间赋值“漏卡”给同一行X列
打了个盹儿   

这活不应该资本家出钱请人打工来做吗?给点虚拟币能做什么?
Mr丶C   

首先,我们需要在Excel中创建一个表格,用于记录员工的打卡数据。表格的列可以包括:员工姓名、日期、上午上班打卡时间、上午下班打卡时间、下午上班打卡时间、下午下班打卡时间。
接下来,我们可以编写一个VBA宏来统计员工的迟到、早退和缺勤次数。以下是一个简单的示例代码:
```vba
Sub 统计考勤()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim 迟到次数 As Long, 早退次数 As Long, 缺勤次数 As Long
Set ws = ThisWorkbook.Worksheets("Sheet1") '请将"Sheet1"替换为您的工作表名称
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
迟到次数 = 0
早退次数 = 0
缺勤次数 = 0
For i = 2 To lastRow '从第2行开始,假设第1行为表头
'上午上班
If ws.Cells(i, 3) > TimeValue("8:05") And ws.Cells(i, 3) = TimeValue("9:05") Then
缺勤次数 = 缺勤次数 + 1
End If
'上午下班
If ws.Cells(i, 4)  TimeValue("10:55") Then
早退次数 = 早退次数 + 1
ElseIf ws.Cells(i, 4)  TimeValue("14:05") And ws.Cells(i, 5) = TimeValue("15:05") Then
缺勤次数 = 缺勤次数 + 1
End If
'下午下班
If ws.Cells(i, 6)  TimeValue("16:55") Then
早退次数 = 早退次数 + 1
ElseIf ws.Cells(i, 6) =TIME(8,5,0),C2=TIME(14,0,0),D2=TIME(18,0,0),D2=TIME(8,0,0),D2=TIME(14,0,0),D2TIME(8,0,0),B2TIME(11,55,0),D2") c. 缺勤次数:=COUNTIF(H:H,"当天缺勤") 其中F、G、H分别对应上面新增的3列。
jack98   


Mr丶C 发表于 2023-5-12 13:38
首先,我们需要在Excel中创建一个表格,用于记录员工的打卡数据。表格的列可以包括:员工姓名、日期、上午 ...

您好,打卡时间在一格内且大于等于四次,可以用代码判断吗
zhangxm
OP
  


jack98 发表于 2023-5-12 13:56
在Excel中打开打卡数据表格。
新增4列"上班状态"、"上午迟到"、"上午早退"和"当天缺勤"。
对于"上班状态" ...

您好,打卡时间在一格内且大于等于四次,可以用代码判断吗
zhangxm
OP
  

用钉钉或者微信企业版来打卡,不香?
老夫黑鹰   

用chatgpt写了一个跟3楼一样的
tangxia84#   


zhangxm 发表于 2023-5-12 15:18
您好,打卡时间在一格内且大于等于四次,可以用代码判断吗

判断“:”个数就可以了
winshaw   


winshaw 发表于 2023-5-12 15:50
判断“:”个数就可以了

可以具体点吗
您需要登录后才可以回帖 登录 | 立即注册

返回顶部