!!!帮忙编辑个全勤VBA
时间:2011-08-07
来源:互联网
帮忙编辑个全勤公式!
1.七月份考勤表里有新近员工,比如只出勤14天,但也是全勤
2.本公司每月4天带薪假期,所以31-4=27天是全勤,30-4=26天是全勤
3.这个表格是我在网上下载的模板,希望也可以实现根据月份变化的全勤公式。
4.新进的员工就是前面几天都没有考勤的,是空白项,注:应该是每个月都会有新近员工,一般都排在表格最下面
5.出勤是出勤,迟到是迟到,
6.用VBA可以啊,只是自己知识面有限,还想不到这些,可以一个单元格一个名字。
7.您做个模板出来,我自己再学习,练习用VBA做迟到,休假的单元格,
比如是六月公式会自动识别出30天中实际出勤26天就是全勤的员工名字
七月公式会自动识别出31天中实际出勤27天就是全勤的员工名字
能不能在这个表上做个个单元格。可以自动体现出上全勤员工的名字。不用可以敲打出来
1.jpg(139.93 KB)
2.jpg(23.25 KB)
考勤表.rar(39.77 KB)
1.七月份考勤表里有新近员工,比如只出勤14天,但也是全勤
2.本公司每月4天带薪假期,所以31-4=27天是全勤,30-4=26天是全勤
3.这个表格是我在网上下载的模板,希望也可以实现根据月份变化的全勤公式。
4.新进的员工就是前面几天都没有考勤的,是空白项,注:应该是每个月都会有新近员工,一般都排在表格最下面
5.出勤是出勤,迟到是迟到,
6.用VBA可以啊,只是自己知识面有限,还想不到这些,可以一个单元格一个名字。
7.您做个模板出来,我自己再学习,练习用VBA做迟到,休假的单元格,
比如是六月公式会自动识别出30天中实际出勤26天就是全勤的员工名字
七月公式会自动识别出31天中实际出勤27天就是全勤的员工名字
能不能在这个表上做个个单元格。可以自动体现出上全勤员工的名字。不用可以敲打出来
附件

2011-8-7 11:21

2011-8-7 11:21

2011-8-7 11:21, 下载次数: 14
作者: 党莎 发布时间: 2011-08-07
请测试
Sub Macro1()
Dim arr, m%, i&, s$
m = Day(DateSerial(Year(Date), [g1] + 1, 0)) - 4
arr = Range("A1:AH" & Range("A65536").End(xlUp).Row)
With WorksheetFunction
For i = 7 To UBound(arr) Step 2
If arr(i, 34) >= m Or .CountIf(Cells(i, 3).Resize(, 31), "") + .CountIf(Cells(i, 3).Resize(, 31), "√") >= m Then s = s & "," & arr(i, 1)
Next
End With
Cells(UBound(arr) + 5, 2) = Mid(s, 2)
End Sub
Sub Macro1()
Dim arr, m%, i&, s$
m = Day(DateSerial(Year(Date), [g1] + 1, 0)) - 4
arr = Range("A1:AH" & Range("A65536").End(xlUp).Row)
With WorksheetFunction
For i = 7 To UBound(arr) Step 2
If arr(i, 34) >= m Or .CountIf(Cells(i, 3).Resize(, 31), "") + .CountIf(Cells(i, 3).Resize(, 31), "√") >= m Then s = s & "," & arr(i, 1)
Next
End With
Cells(UBound(arr) + 5, 2) = Mid(s, 2)
End Sub
作者: zhaogang1960 发布时间: 2011-08-07
李俊楠出勤19天休假2天 应该算全勤的,
张慧慧出勤13.5天休假0.5天 也应该算全勤的。
张慧慧出勤13.5天休假0.5天 也应该算全勤的。
作者: 蓝桥玄霜 发布时间: 2011-08-07
2楼用空格+出勤好像不妥,下面用迟到+休息+旷工<=4判断:
Sub Macro2()
Dim arr, m%, i&, s$
m = Day(DateSerial(Year(Date), [g1] + 1, 0)) - 4
arr = Range("A1:AH" & Range("A65536").End(xlUp).Row)
With WorksheetFunction
For i = 7 To UBound(arr) Step 2
If arr(i, 34) >= m Then
s = s & "," & arr(i, 1)
ElseIf .CountIf(Cells(i, 3).Resize(, 31), "○") + .CountIf(Cells(i, 3).Resize(, 31), "△") + .CountIf(Cells(i, 3).Resize(, 31), "※") <= 4 Then
s = s & "," & arr(i, 1)
End If
Next
End With
[b92] = Mid(s, 2)
End Sub
Sub Macro2()
Dim arr, m%, i&, s$
m = Day(DateSerial(Year(Date), [g1] + 1, 0)) - 4
arr = Range("A1:AH" & Range("A65536").End(xlUp).Row)
With WorksheetFunction
For i = 7 To UBound(arr) Step 2
If arr(i, 34) >= m Then
s = s & "," & arr(i, 1)
ElseIf .CountIf(Cells(i, 3).Resize(, 31), "○") + .CountIf(Cells(i, 3).Resize(, 31), "△") + .CountIf(Cells(i, 3).Resize(, 31), "※") <= 4 Then
s = s & "," & arr(i, 1)
End If
Next
End With
[b92] = Mid(s, 2)
End Sub
作者: zhaogang1960 发布时间: 2011-08-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28