ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 得力考勤机转换成VBA

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-4-16 22:50 来自手机 | 显示全部楼层
zmj9151 发表于 2018-10-7 20:13
请测试是否满足需要,多余的时间未做删除

大佬你的代码帮助我解决很多问题,能否把10分钟内重复打卡给删除不统计,重复打卡取第一个值,谢谢

TA的精华主题

TA的得分主题

发表于 2022-3-15 15:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zmj9151 发表于 2018-10-7 20:13
请测试是否满足需要,多余的时间未做删除

大神,我也想把横版打卡表更换成竖版的,但是直接复制打卡数据过去,点击按钮,显示运行错误‘下标越界’?是什么原因呢?求指点

TA的精华主题

TA的得分主题

发表于 2022-3-15 16:08 来自手机 | 显示全部楼层
李晓敏2022 发表于 2022-3-15 15:40
大神,我也想把横版打卡表更换成竖版的,但是直接复制打卡数据过去,点击按钮,显示运行错误‘下标越界’ ...

发文件看看

TA的精华主题

TA的得分主题

发表于 2022-10-11 11:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

你好,为什么把我的表复制进去,显示运行时错误9,下标越界

TA的精华主题

TA的得分主题

发表于 2022-10-11 18:40 来自手机 | 显示全部楼层
2276417464 发表于 2022-10-11 11:28
你好,为什么把我的表复制进去,显示运行时错误9,下标越界

发文件看看

TA的精华主题

TA的得分主题

发表于 2022-10-12 10:22 | 显示全部楼层
image.jpg

添加一张表,把不规则的转换,一人一条记录。
规则了,后面应该要好处理多了!

公司电脑有加密,发图
代码

Sub 考勤数据处理()
   
    ' 问题与数据来源:https://club.excelhome.net/thread-1438973-1-1.html
    ' Sheet1 为 得力考勤机数据,由于每个人的打卡次数不一,且导出时是按每二次一个单元格,造成了每人占用的行数不一
    ' 思路:1、把同一人、同一天的多个打卡,合并到同一个单元格中;2、取一天最小和最大二个时间;3、计算出勤的时间;
   
    Sheet2.UsedRange.ClearContents
    usedrow = Sheet1.UsedRange.Rows.Count     ' 获得考勤打卡表的结束行号
    x2 = 1
    For x1 = 5 To usedrow
      If Sheet1.Cells(x1, 11).Value = "姓名:" Then
        x2 = x2 + 1      ' 控制表2的写入位置
        Sheet2.Cells(x2, 1).Value = Sheet1.Cells(x1, 19).Value
        Sheet2.Cells(x2, 2).Value = Sheet1.Cells(x1, 4).Value
        Sheet2.Cells(x2, 3).Value = Sheet1.Cells(x1, 12).Value
        ' 完成部门、工号、姓名的写入
        kz = 0           ' 为了避开表1姓名的下一行是日期行
      Else
        If kz = 0 Then
          kz = x1        ' 到达日期一行时,只做一件事,就改变KZ的值,以达到控制的目的
        Else
          For y = 2 To 32
            If Len(Sheet2.Cells(x2, y + 2).Value) = 0 Then
              Sheet2.Cells(x2, y + 2).Value = Sheet1.Cells(x1, y).Value  ' 如果表2单元格为空,直接写入
            Else
              If Len(Sheet1.Cells(x1, y).Value) > 0 Then     ' 表1单元格不空,才写入(添加)到表2同一个单元格中
                Sheet2.Cells(x2, y + 2).Value = Sheet2.Cells(x2, y + 2).Value & Chr(10) & Sheet1.Cells(x1, y).Value
              End If
            End If
          Next y
        End If
      End If
      
    Next x1
    For y = 1 To 31
       Sheet2.Cells(1, y + 3).Value = y & "号"
    Next y
    Sheet2.Cells(1, 1).Value = "部门"
    Sheet2.Cells(1, 2).Value = "工号"
    Sheet2.Cells(1, 3).Value = "姓名"
   
End Sub


TA的精华主题

TA的得分主题

发表于 2022-10-12 13:27 | 显示全部楼层
以上处理,解决了思路中的第一步

TA的精华主题

TA的得分主题

发表于 2023-6-14 21:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wengjl 发表于 2022-10-12 10:22
添加一张表,把不规则的转换,一人一条记录。
规则了,后面应该要好处理多了!

大神这个文件有时间可以麻烦分享一下么

TA的精华主题

TA的得分主题

发表于 2023-6-15 08:28 | 显示全部楼层
Ren傑 发表于 2023-6-14 21:09
大神这个文件有时间可以麻烦分享一下么

因为我的办公电脑有加密,所以才是贴图的,

TA的精华主题

TA的得分主题

发表于 2023-6-15 14:34 | 显示全部楼层
wengjl 发表于 2023-6-15 08:28
因为我的办公电脑有加密,所以才是贴图的,

大神,后续的部分可以分享一下么
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 04:43 , Processed in 0.032511 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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