Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2313|回复: 7

求大侠完善VBA功能

[复制链接]
发表于 2019-10-3 16:21 | 显示全部楼层 |阅读模式
本帖最后由 封存记忆 于 2019-10-3 16:22 编辑

这是一个通过原始打卡数据进行分析统计的VBA,现在希望增加一个功能,如图中张三17号一天没打卡,能否在考勤分析表里增加一个空白行,显示刷卡次数为0,以便于后面备注出差或请假等事宜。
考勤打卡统计.rar (48.39 KB, 下载次数: 2)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-10-5 15:54 | 显示全部楼层
原有的 VBA 程序不要动,最后增加一个子过程调用。
子过程读取刷卡日期,自下而上循环处理(行号从大到小),如果日期缺失就新增一行。
网上能搜索到类似代码,如果没有增加新行的,可以找删除空行的,改改就行了。
回复

使用道具 举报

发表于 2019-10-6 14:14 | 显示全部楼层
原程序中调用即可。
Sub jk()
  Dim h As Long
  With Sheet3
    i = .[a65536].End(3).Row
    .Range("a2:m" & i).Sort key1:="编号", key2:="刷卡日期", Header:=xlYes
    For h = i To 3 Step -1
      If .Cells(h, 1) = .Cells(h - 1, 1) Then
        For cs = 1 To ts(h)
          .Rows(h).Insert
          .Range(.Cells(h, 1), .Cells(h, 4)) = Array(.Cells(h - 1, 1), .Cells(h - 1, 2), DateAdd("d", -1, .Cells(h + cs, 3)), 0)
        Next cs
      End If
    Next h
  End With
End Sub
Function ts(h As Long) As Integer
  With Sheet3
    For i = 1 To 1000
      t = DateAdd("d", -(i), .Cells(h, 3))
      If .Cells(h - 1, 3) = t Then
        ts = i - 1: Exit Function
      End If
    Next i
  End With
End Function
回复

使用道具 举报

发表于 2019-10-6 14:16 | 显示全部楼层
把程序文件发给你。

考勤打卡统计.zip

66.7 KB, 下载次数: 3

评分

参与人数 1学分 +3 收起 理由
zjdh + 3 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-10-7 08:17 | 显示全部楼层
liangmutou 发表于 2019-10-6 14:16
把程序文件发给你。

太感谢了!膜拜你!
回复

使用道具 举报

 楼主| 发表于 2019-10-8 15:41 | 显示全部楼层
liangmutou 发表于 2019-10-6 14:16
把程序文件发给你。

这个程序在使用过程中发现有问题,比如当连续出差多天的时候会出现显示相同日期的情况,如下图请问还可以完善吗?
1.png 2.png
回复

使用道具 举报

发表于 2019-10-10 12:28 | 显示全部楼层
本帖最后由 zjdh 于 2019-10-10 12:35 编辑

只要作小小改动
For cs = 1 To ts(h)
        .Rows(h).Insert  '插入行
        .Range(.Cells(h, 1), .Cells(h, 4)) = Array(.Cells(h - 1, 1), .Cells(h - 1, 2), DateAdd("d", -cs, .Cells(h + cs, 3)), 0)
Next cs
回复

使用道具 举报

 楼主| 发表于 2019-10-11 14:47 | 显示全部楼层
zjdh 发表于 2019-10-10 12:28
只要作小小改动
For cs = 1 To ts(h)
        .Rows(h).Insert  '插入行

谢谢你!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 03:44 , Processed in 0.939259 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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