分享

你应该这么玩Excel-考勤表的制作

 天天原创文章 2023-09-28 发布于河南

 题记:

每个公司,无论大小,都会用到考勤表,考勤的方式有很多,有指纹打卡的,有微信打卡的、也有钉钉打卡的,但最终都离不开汇总、打印、员工签字确认的环节。

本期给大家分享一下 我曾经在Excel home 分享的考勤表模板,此贴目前点击量为 28885条,回复115条,下载量6千。

原来为03版本制作,现在换16版本后,部分代码不适用,又做了部分修正,如大家需要的话,公众号里发消息,“考勤表”,即可弹出百度网盘下载更新后的考勤模板。


 如果你用的是2003版本,可以直打开一个空表,如果是03版本以上的Excel版本可以新建一个启用宏的空Excel表格,因为接下来给你分享的要稍微用到一些基本的小代码,方便更快捷、高效的完成日常的考核应用。

A、在空白表里建立如上图样式的空白考勤表。

B、既然要考勤就离不开考勤符号,其考勤符号代表的意识,请参看图片下方标注的释义,如找不到某些符号,可以在Excel表里的上方工具栏里找插入--符号-特殊符号里找。

C、建立符号后,需要用序列来设定空白单元格,以后再考核时,可以在序列里选择,(序列的使用方法可点括号里的蓝字查看:你用对数据有效性了吗?)。

D、姓名、岗位的也可以通过合并制作斜线表头。(方法括号内点蓝字查看:表头设置的几种方法)。

E、星期的设置(C2至AG2),输入1-1,可以选择设置单元格里设置,详细图例如下:

通过设置后,点住C2单元格,向后推拽至31号位置即可,这样就能即可看到今天的日期,也能看到今天是星期几。

F、以上设置完成后,把本工作表修改1月份,然后 鼠标放到1月份标签处,点鼠标右键,点移动和复制,打勾建立副本,点确定后,副本建立。

G、 建立副本后修改为2月份、依次类推,建立12个工作表。

H、除此之外,在另外建立登录、设置、全年三个工作表,下面会有介绍。

 统计公式COUNTIF的设置(1月为例子):

在当前1月份工作表用到的公式=COUNTIF(C4:AG4,$AI$3),其它各项,依次类推。

SUBTOTAL函数的应用和公式设置:

这个函数在这里的作用是起到自动排序的作用,我第5行是没有输入姓名的,则无需打印。

打印设置:

此设置是为了以后筛选、打印的时候用的,其具体的用法效果图如下(if的使用请点击本括号内蓝字链接查看 :Excel-条件这么多,怎么判断,if有话说)。

 返回当前日期公式设置:

这个当然要用到=today()

如果到此结束,此工作薄里的1-12月份的工作表也能用,但是为了在简便点,方便点,喜欢提高效率的友友可以继续往下看哦。

功能窗体的制作。

很明白,这是功能面板分了打印、编辑区域、新增工作表三个功能小面板。以下分别介绍如下 :

A、打印代码,以1月份为例:

Private Sub CommandButton3_Click()
 Sheets("1月份").Select
 Selection.AutoFilter Field:=2, Criteria1:="需打印"
 If MsgBox("是否准备好打印工作?如是请点击“是”开始打印;如未准备好,请点“否”取消打印!!!", vbYesNo) = vbNo Then Exit Sub
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
     End Sub

  • 此是为了方便打印各月考勤所设置的快捷打印 ,点打印后,程序转到1月份,先筛选出需打印项、此时,会提醒你是否准备好打印工作 (即你放好了纸张和其它需要准备的东西了没有),如果你 没准备好,点NO,程序退出,如点yes,程序继续,开始打印。

  • 打印完后,就可以拿去找员工签名了。

B、限制编辑区域代码(1月份为例)

Private Sub CommandButton17_Click()
Sheets("1月份").Select
ActiveSheet.ScrollArea = "A4:AH151"
End Sub

  • 此是为了临时保护此区域(A4:AH151)以外的单元格以外的有公式的部分,主要是为了怕把公式弄乱。

C、新增工作表代码(1月份为例)

Private Sub CommandButton33_Click()
Sheets("1月份").Select
 Dim NewBook As Workbook
Dim ActSht As Object
Set ActSht = ThisWorkbook.ActiveSheet
Set NewBook = Workbooks.Add
    ActSht.Copy Before:=NewBook.Sheets(1)
    If MsgBox("1月份考勤已提取到新的工作薄,是否把新工作薄多余的空白项删除", vbYesNo) = vbNo Then Exit Sub
    Sheets("1月份").Select
    Range("AW3").Select
    Selection.AutoFilter Field:=2, Criteria1:="=空白", Operator:=xlAnd
    Rows("4:4").Select
    Rows("4:151").Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.ShowAllData
End Sub

  • 主要是为了给别人转发考勤的时候使用,你转发的是一月份,就点一月份,会把本考勤表里的1月份考勤提取出来,并可根据需要选择是否需要删除空白项。

D、设置工作表里的权限设置。

  • 设置管理员权限、登录人员权限,在需要开通的权限里写入1即可。

    具体登录的代码由于篇幅太长、此节暂略,以后有机会再分享。

  • 登录窗体如下:

  • 后面背景是动画加音乐、在登录窗体内输入用户名、密码 即可登录。

 至此,一个比较完善的考勤表就制作完成了,使用时开启宏,即可完成相关的操作。


 更多学习文章请点下方蓝字链接:

Excel学习合集


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多