sheet1 格式
Sub 统计人数()
'A为号码C姓名 D时间 Dim j As Integer
j = 1 For i = 2 To 100000 Step 1 If Range("a" & i).Value <> Range("a" & i + 1).Value Then j = j + 1 Sheets("sheet3").Range("a" & j).Value = Range("a" & i).Value
Sheets("sheet3").Range("b" & j).Value = Range("c" & i).Value Else: If Range("a" & i).Value = "" Then End End If
Next i End Sub Sub 统计迟到早退()
'Sheets("sheet3").Range("c" & j).Value = 1
Dim a, b, c, j As Integer j = 1
For i = 2 To 100000 Step 1
a = Sheets("sheet1").Range("a" & i).Value
b = Sheets("sheet3").Range("a" & j).Value
c = Sheets("sheet1").Range("d" & i).Value
If a = "" Then Exit For
If a - b = 0 Then Sheets("sheet3").Range("c" & j).Value = Sheets("sheet3").Range("c" & j).Value + 0.5 '判断时间 经理9:00 员工9:20
d = Val(Format(c, "hhnn"))
e = Format(c, "d") 'If d - 900 > 0 And d - 900 < 300 Then
' Sheets("sheet3").Range("i" & j).Value = Sheets("sheet3").Range("i" & j).Value & e & "、"
' End If If d - 920 > 0 And d - 920 < 280 Then
Sheets("sheet3").Range("i" & j).Value = Sheets("sheet3").Range("i" & j).Value & e & "迟到、"
End If
If d - 1200 < 600 And d - 1200 > 0 Then
Sheets("sheet3").Range("h" & j).Value = Sheets("sheet3").Range("h" & j).Value & e & "早退、"
End If
Else
j = j + 1
Sheets("sheet3").Range("c" & j).Value = 0.5
'MsgBox (a)
'MsgBox (b) End If Next i End Sub
Sub 统计上下午未打卡() Dim a, b, c, j As Integer j = 1 For i = 2 To 100000 Step 1
a = Sheets("sheet1").Range("a" & i).Value
l = Sheets("sheet1").Range("a" & i + 1).Value
b = Sheets("sheet3").Range("a" & j).Value
c = Sheets("sheet1").Range("d" & i).Value
d = Sheets("sheet1").Range("d" & i + 1).Value
g = Sheets("sheet1").Range("d" & i - 1).Value
e = Format(c, "d")
f = Format(d, "d")
h = Format(g, "d")
k = Format(c, "h")
If a = "" Then Exit For If a - b = 0 Then If e <> f And e <> h And k < 12 Then Sheets("sheet3").Range("j" & j).Value = Sheets("sheet3").Range("j" & j).Value & e & "下午、" End If If e <> f And e <> h And k > 12 Then Sheets("sheet3").Range("j" & j).Value = Sheets("sheet3").Range("j" & j).Value & e & "上午、" End If Else: j = j + 1
If e <> f And k > 12 Then
Sheets("sheet3").Range("j" & j).Value = e & "上午\、"
End If
If k < 12 And e <> f Then
Sheets("sheet3").Range("j" & j).Value = e & "下午\、"
End If
End If Next i End Sub Sub 填写第一行()
Sheets("sheet3").Range("a" & 1).Value = "考勤号码"
Sheets("sheet3").Range("b" & 1).Value = "姓名"
Sheets("sheet3").Range("c" & 1).Value = "出勤天数"
Sheets("sheet3").Range("h" & 1).Value = "早退"
Sheets("sheet3").Range("i" & 1).Value = "迟到"
Sheets("sheet3").Range("j" & 1).Value = "未打卡"
End Sub Sub test()
'Dim arry(1 To 2) As Integer
c = Sheets("sheet1").Range("d" & 29).Value
'arry(1) = 23
'arry(2) = 909
a = DateAdd("n", 20, c)
MsgBox (Format(c, "hh") > 12) End Sub

  

vba考勤处理的更多相关文章

  1. 20190319xlVBA_根据考勤数据统计缺勤缺考数据

    Sub SubtotalPickFile() Dim StartTime As Variant Dim UsedTime As Variant StartTime = VBA.Timer Dim fi ...

  2. 使用VBA,优化处理Excel表格

    前言 上周末,XX给我抱怨:因为计算绩效奖金,把2个人的工资发错了,还被扣了500元.问的缘由得知,她每个月要处理十来个excel表格,每次都要手动修改里面的值,如果修改了一处,其他地方也要修改,然后 ...

  3. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...

  4. VBA学习

    1. Range / Cells / Columns / Rows 2. 绝对引用 $F$13 / 相对引用 F13 公式所在单元格的被复制到其他位置时,绝对引用不变 3. VLookup / NLo ...

  5. VBA学习思路

    打算花两三天学习VBA的基础,学习资料为<别怕,VBA其实很简单>,为了快速学习,先了解大致框架,后续再深入学习各种属性.方法和技巧. 1.VBA编程环境基本操作,手工操作,熟悉即可 2. ...

  6. VBA笔记(三)——常用对象

    VBA实际上就是操作Excel,把Excel进行拆解,划分多层对象,由顶至下为(也可以说是层层包裹): Application:代表Excel程序本性,之后我们操作对象都在它之下,因为是唯一且至高点, ...

  7. VBA中使用计时器的两种方法

    '================================ ' VBA采用Application.OnTime实现计时器 ' ' http://www.cnhup.com '========= ...

  8. 考勤系统代码分析——主页布局easyui框架

    考勤系统主页的布局用的是easyui的Layout控件 Layout:布局容器有5个区域:北.南.东.西和中间.中间区域面板是必须的,边缘的面板都是可选的.每个边缘区域面板都可以通过拖拽其边框改变大小 ...

  9. VBA初试——合并

    今天遇到一个任务,要把excel中的相同行合并:没有找到直接的办法(vlookup大概能做),试了试VBA挺好用 数据结构 第一.二列是描述字段,第二列元素唯一:第三到第八列是标志位 任务 合并描述字 ...

随机推荐

  1. ubuntu中文实训手册

    http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/ http://www.apachefriends.org/zh_cn/xampp-linu ...

  2. The 2013 South America/Brazil Regional Contest 题解

    A: UVALive 6525 cid=61196#problem/A" style="color:blue; text-decoration:none">Atta ...

  3. 【贪心+中位数】【新生赛3 1007题】 Problem G (K)

    Problem G Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

  4. 【Java基础】构造方法调用构造方法

    从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) // ...

  5. php中的short_open_tag的作用

    在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>). 同时,只有开启这个才可以使用 <?= 以代替 < ...

  6. Android图片编译报错

    一. AAPT err(1118615418): ERROR: 9-patch image icon_item_bottom_line.9.png malformed No marked region ...

  7. CDZSC_2015寒假新人(1)——基础 b

    Description The highest building in our city has only one elevator. A request list is made up with N ...

  8. Samba服务器

    Windows操作系统下:DOC命令下:netstat -an查看端口 (一)简介 文件服务器 (二)端口 smbd: 为clinet提高资源访问 tcp  139  445    (类似于windo ...

  9. php 变量

    unset() 卸载 静态变量static $i=2; 1.是在所有对函数调用中共享; 2.只有在第一次调用的时候赋值 <?php /* * 一.任何数量的参数 * func_get-args( ...

  10. mysql 根据规定的数组进行排序

    最近在开发中遇到一个问题,我要根据一组商品的佣金进行排序和分页,可是佣金并不在商品表中,于是我就只能通过数组的操作把佣金计算出来,然后通过array_multisort()方法进行排序,可是无法做到分 ...