ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 好望之角

[原创] 原创分享:“一键搞定”考勤数据分析系统

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-4-7 08:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好望之角 发表于 2011-5-22 20:55
针对31楼 lijie123456提供的考勤数据,修改了源程序,推出一个友情版:
麻烦楼主了,我这里需要实现如下要 ...

知识就是力量

TA的精华主题

TA的得分主题

发表于 2012-4-11 13:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
657552572 发表于 2012-3-5 18:47
你好,
我点读取后弹出如下提示:“以下隐藏模块存在编译错误:读取”。
请问该如何解决,辛苦了。

我用的是英文版的Excel 2007,也有类似的编译错误问题。我的解决方案如下,供参考。
1. 打开楼主的文件后,Alt+F11打开VBAProject编辑器,双击VBAProject名,输入工程密码123后,可以看到工程源码。
2. 这时,单击VBAProject名,鼠标右键选择VBAProject Properties...>Protection,取消“Lock project for viewing”的勾选,清空下方的Password和Confirm password后,点击OK确认,关闭VBAProject编辑器,保存Excel文件后关闭。
3.重新打开楼主的文件后,会自动打开VBAProject编辑器,定位到编译错误之处。我的问题原因是丢失了两个关键控件Microsoft Calendar Control 2007和Microsoft Access BarCode Control 9.0,如图所示:

丢失控件

丢失控件

4.通过下方的location定位查找,发现我的Microsoft安装文件中的确没有这两个控件,从别人的安装文件中复制了这两个控件文件,通过上图的Browse...按钮指定了控件文件的位置,OK确认后。再运行楼主的文件,就没有编译错误了。

TA的精华主题

TA的得分主题

发表于 2012-4-11 20:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真的很强大,谢谢分享

TA的精华主题

TA的得分主题

发表于 2012-4-11 21:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我要好好研究下 谢谢分享

TA的精华主题

TA的得分主题

发表于 2012-4-12 09:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真了不起,能自己编程做那么经典的东东!谢谢!

TA的精华主题

TA的得分主题

发表于 2012-4-12 10:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-4-18 07:52 | 显示全部楼层
辛苦您了,感谢您的无私分享。

TA的精华主题

TA的得分主题

发表于 2012-4-18 16:50 | 显示全部楼层
好望之角 发表于 2011-5-23 16:49
再推出一个友情版2
针对43楼 echo.zhang
的考勤数据,修改了源程序,推出一个友情版:

楼主,这样的刷卡记录能否搞定。
8:01--8:15记为迟到;16:55--16:59为早退;8:16--16:54为异常。其余时间为休息
且有的人只在8:00之前打卡,有的人是8:00之前打卡一次,晚上17:00之后打卡一次。
并且能自己设置休息日,能够查询出来员工是否漏刷卡。
附:刷卡记录
牡丹江考勤记录_20120326084623.RAR (10.38 KB, 下载次数: 76)

TA的精华主题

TA的得分主题

发表于 2012-4-25 00:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
67826875 发表于 2012-4-18 16:50
楼主,这样的刷卡记录能否搞定。
8:01--8:15记为迟到;16:55--16:59为早退;8:16--16:54为异常。其余时间 ...

试试看我更新改动过的V3.2版,应该能满足你的要求:可以在<假日设置>表中的公休假安排区域设置对所有员工都适用的特殊假日,虽然<假日设置>表有员工假日定义区,但V3.2暂不支持员工假日自行匹配;也可以查询出于员工是否在工作日漏刷卡,有工作日只刷一次卡的情况(在“统计”表中标记为“漏打卡”),也有工作日早晚都没刷卡的情况(在“统计"表中标记为“未出勤”)。

使用时,只需要下列几步自定义一下V3.2版即可。
Step 1: 打开你的附件,选中<考勤记录>Sheet,另存为unicoed的TXT文件,保存关闭。
Step 2: 打开V3.2版的系统主文件一键搞定考勤系统V3.2.xls,允许运行宏后,单击【系统设置】按钮,输入管理员密码zaq12wsx打开隐藏的辅助功能表。
Step 3: 把你已有的员工信息(工号、部门、姓名)复制粘贴到“应考勤名单”Sheet的A-C列的相应区域。然后单击该表中的【更新部门及员工信息】按钮,从J列往右就会得到最新的部门列表,以及各部门所属员工列表。
Step 4: 在“参数设置”Sheet的PAR_KEYCOL区域定义你的TXT文件中工号、姓名、考勤日期、打卡时间所在列。如果考勤日期和打卡时间为同一列,则写入相同的列数。如:
PAR_KEYCOL 原始数据TXT文档的关键数据列设置
DQ_GHCol2第1个关键列在TXT文档中所处列数,如工号位于第几列
DQ_XMCol1第2个关键列在TXT文档中所处列数,如姓名位于第几列
DQ_DateCol4第3个关键列在TXT文档中所处列数,如考勤日期位于第几列
DQ_TimeCol4第4个关键列在TXT文档中所处列数,如打卡时间位于第几列
KEYCOL_GH工号第1个关键列读入后在<读取U盘>表的列标题,如工号
KEYCOL_XM姓名第2个关键列读入后在<读取U盘>表的列标题,如姓名
KEYCOL_DATE考勤日期第3个关键列读入后在<读取U盘>表的列标题,如考勤日期
KEYCOL_TIME打卡时间第4个关键列读入后在<读取U盘>表的列标题,如打卡时间

Step 5: 在“参数设置”Sheet的PAR_DUTY区域定义你的考勤制度,如你所述,各变量应该可以如下设置:
PAR_DUTY 设置考勤制度(时间格式均为h:mm:ss;@),均不可为空。
LateS_ClkIn8:01:00最早迟到时间。即当天最早打卡早于该时间,则为正常上班。
LateE_ClkIn8:15:00最晚迟到时间。即当天最早打卡晚于该时间,则为异常考勤。
LevS_ClkOut16:55:00最早早退时间。即当天最晚打卡早于该时间,则为异常考勤。
LevE_ClkOut16:59:00最晚早退时间。即当天最晚打卡晚于该时间,则为正常下班。
Miss_AM16:54:00上午缺勤的起始时间,即当天最早打卡晚于该时间,则为上午缺勤。
Miss_PM8:16:00下午缺勤的起始时间,即当天最晚打卡早于该时间,则为下午缺勤。
Dup_Clik0:00:00两次打卡间隔多久以上的才被视为重复打卡,如15分钟(0:15:00)
Tag_Nor正常员工当天的最早打卡早于或等于最早迟到时间,且最晚打卡等于或晚于最晚早退时间。
Tag_Late迟到员工当天的最早打卡晚于最早迟到时间,且早于最晚迟到时间。
Tag_Lev早退员工当天的最晚打卡早于最晚早退时间。
Tag_Abn异常异常考勤的标记,也是上下午缺勤或者无考勤,假日或周末加班等异常考勤数据的列标题。
Tag_Miss漏打卡员工当天只有一次打卡记录。
Tag_Abs_AM异常员工当天的最早打卡晚于上午缺勤的起始时间。若Miss_AM=LateE_ClkIn,则建议此处设成“异常”。
Tag_Abs_PM异常员工当天的最晚打卡早于下午缺勤的起始时间。若Miss_PM=LevS_ClkOut,则建议此处设成“异常”。
Tag_Abs_Day未出勤员工当天没有打卡。
Tag_Dup重复打卡员工当天有两次以上的打卡记录。

Step 6: 如果有对全部员工适用的公司假日,请添加到“假日设置”Sheet的公休假安排表中。若没有,则可略过这一步。

Step 7: 保存文件,回到“界面”Sheet,单击【1.读取数据】按钮,选中打开Step 1保存的TXT文件即可。若要对所有数据进行统计分析,则去除“界面”Sheet中默认的查询条件“时间”复选框中的勾选,然后单击【3.开始查询】按钮,完毕后,单击【一键搞定】按钮,就可以得到分析结果。

Step 8: 在汇总ByEmp表中可以通过选择工号,看到每位员工相应的考勤分析;在“统计”表中,可以看到所有员工的考勤分析;在“迟到”、“早退”、“异常”、“漏打卡”、“重复打卡”各表中分别可以看到每种考勤类型相应的考勤数据。

Step 9:以后每次使用时,只要保证原始考勤数据TXT文件与这次用的一致,就不必重复Step 1-6,直接从Step 7读取数据开始即可。

具体的V3.2版用户手册,请参见http://club.excelhome.net/thread-859554-1-1.html

TA的精华主题

TA的得分主题

发表于 2012-4-25 12:48 | 显示全部楼层
negibaby 发表于 2012-4-25 00:16
试试看我更新改动过的V3.2版,应该能满足你的要求:可以在表中的公休假安排区域设置对所有员工都适用的特 ...

感谢您的回复!我能看懂您的叙述,但是附件打开时显示“VBA:模块未找到”,打开后无法正常显示,不像之前的版本可以读取数据等操作。我的操作系统是XP,OFFICE是2003 SP3正式版
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-26 15:17 , Processed in 0.053745 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表