ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3618|回复: 26

[求助] 请假录入程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-7-25 16:58 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lianebin 于 2021-7-25 17:04 编辑



当日的请假程序已经写好。现在多日的请假请高手帮我完善。
规则:上班时间 8:00   下班时间: 16:30  中午  11:30 到12:00午饭时间不计入考勤
表格2内可设置节假日日期,用于设置节假日。

现模式:  通过VBA控件填入   姓名:张三   开始日期:2021-7-16  开始时间:9:00    结束日期:2021-7-19    结束日期:16:30
提交后只能写入一条记录:  张三    2021-7-16   7(小时)  (17号到19号写入不会弄)
当天请假已经可以满足需求。现就是多天请假无法实现。

希望提交后实现:
多天请假,希望提交后在表格内转化为每 天的请假明细,并一次写入表格内:
比如:通过VBA控件填入   姓名:张三   开始日期:2021-7-16  开始时间:9:00    结束日期:2021-7-19    结束日期:16:30
提交后一次写入到表格内如下:
张三    2021-7-16   9:00    16:30   7(小时)
张三    2021-7-17    8:00    16:30   8 (小时 )
张三    2021-7-19    8:00    16:30   8 (小时 )
2021-7-18日为节假日,不写入。
  以上目的就是想知道每 个人那些天请了假,那些天请了多少时间。

附件为表格,请大神帮忙   。。。附件excel我增加了日期控件,需win10系统才支持。

请假-7月-控件版 - 副本.rar

27.54 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2021-7-25 17:22 来自手机 | 显示全部楼层
17号到19号写入不会弄)

不是不会吧,是觉得写3条有点麻烦吧?
如果一个人填工作量太大,可以让请假的人填写。可以用钉钉考勤或在线表单分散一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-7-25 17:31 | 显示全部楼层
zpy2 发表于 2021-7-25 17:22
17号到19号写入不会弄)

不是不会吧,是觉得写3条有点麻烦吧?

多谢回复。

TA的精华主题

TA的得分主题

发表于 2021-7-25 17:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 一指禅62 于 2021-7-25 17:38 编辑


曾为别人定制过的

请假.png


TA的精华主题

TA的得分主题

 楼主| 发表于 2021-7-25 17:45 | 显示全部楼层
一指禅62 发表于 2021-7-25 17:33
曾为别人定制过的

你这个我会弄。 我现在不会弄的是多天请假的写入每 天的数据。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-7-25 19:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-7-26 08:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 一指禅62 于 2021-7-26 08:59 编辑
lianebin 发表于 2021-7-25 17:45
你这个我会弄。 我现在不会弄的是多天请假的写入每 天的数据。

这个是按规则逐日计算得到的。


规则.png




这个会弄的话,那就没有问题了。










TA的精华主题

TA的得分主题

发表于 2021-7-26 11:28 | 显示全部楼层
Private Sub CommandButton1_Click()
Dim s As Date
If ComboBox1.Text = "" Then MsgBox "姓名不能为空!": Exit Sub
If TextBox1.Text = "" Then MsgBox "开始日期不能为空!": Exit Sub
If TextBox2.Text = "" Then MsgBox "结束日期不能为空!": Exit Sub
If ComboBox2.Text = "" Or ComboBox4.Text = "" Then MsgBox "开始时间不能为空!": Exit Sub
If ComboBox3.Text = "" Or ComboBox5.Text = "" Then MsgBox "结束时间不能为空!": Exit Sub
With Sheets("请假")
    ts = DateDiff("d", TextBox1.Text, TextBox2.Text)
    If ts = 0 Then
        r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        .Cells(r, 1) = ComboBox1.Text
        .Cells(r, 2) = TextBox1.Text
        .Cells(r, 3) = CDate(ComboBox2.Text & ":" & ComboBox4.Text)
        .Cells(r, 4) = CDate(ComboBox3.Text & ":" & ComboBox5.Text)
        .Cells(r, 5) = DateDiff("h", .Cells(r, 3), .Cells(r, 4))
    ElseIf ts > 0 Then
        ks = TextBox1.Text
        js = TextBox2.Text
        For s = ks To js
            r = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Cells(r, 1) = ComboBox1.Text
            .Cells(r, 2) = s
            m = m + 1
            If m = 1 Then
                .Cells(r, 3) = CDate(ComboBox2.Text & ":" & ComboBox4.Text)
                .Cells(r, 4) = CDate("16:30")
                .Cells(r, 5) = DateDiff("h", .Cells(r, 3), .Cells(r, 4))
            ElseIf m > 1 And m <= ts Then
                .Cells(r, 3) = CDate("08:00")
                .Cells(r, 4) = CDate("16:30")
                .Cells(r, 5) = 8
            ElseIf m = ts + 1 Then
                .Cells(r, 3) = CDate(ComboBox3.Text & ":" & ComboBox5.Text)
                .Cells(r, 4) = CDate("16:30")
                .Cells(r, 5) = 8 - DateDiff("h", .Cells(r, 3), .Cells(r, 4))
            End If
        Next s
    End If
End With
MsgBox "ok!"
End Sub

TA的精华主题

TA的得分主题

发表于 2021-7-26 11:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-7-26 11:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
暂时还没有考虑节假日和休息时间,先看看,是不是这样的效果,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 07:17 , Processed in 0.045059 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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