Excel宏之插入行,日期操作,时间操作,周末判断

来源:互联网 发布:零起点学通c语言 pdf 编辑:程序博客网 时间:2024/03/29 14:29

为了能拉到项目,在贿赂项目负责人员方面也是蛮拼的,直接帮忙减轻工作负担,用VB写了个宏处理对方的excel

需求:将一段请假的日期以天为单位拆分成一条一条记录,并且忽略节假日。(即周六周日包含在请假日期区域的话则不需要记录改行条目,ps这里有个五一假日需要过滤掉,对方主要是五月份的假期统计)

for instance:



考虑了一下,觉得判断第4、6列数据是否相等就行了,不等的话就增加一行,当前行当做4列当天数据,新增行的第4列为4列日期+1,如果是节假日则继续+1,直到不是节假日为止。但是更多的有可能的问题没有校验,只当做输入实例都没有问题来处理。


具体细节不多描述了,直接上代码。

Sub aa()


Dim i, j
i = 1
Do While (Cells(i, 1) <> "")
 If Cells(i, 4) <> Cells(i, 6) Then '这里似乎用CDate(Cells(i,4))<CDate(Cells(i),6)更好
    '插入行
    Rows(i + 1).Insert
    For j = 1 To 8
        Cells(i + 1, j) = Cells(i, j)
    Next
    'i行结束日期
    Cells(i, 6) = Cells(i, 4)
    Cells(i, 7) = "17:30:00"
    'i+1行开始日期
    Cells(i + 1, 4) = DateAdd("d", 1, CDate(Cells(i + 1, 4)))
    Cells(i + 1, 5) = "08:00:00"
    '节假日
    Do While (Application.Weekday(CDate(Cells(i + 1, 4)), 2) = 6) Or (Application.Weekday(CDate


(Cells(i + 1, 4)), 2) = 7) Or CDate(Cells(i + 1, 4)) = CDate("2015-05-01")
        Cells(i + 1, 4) = DateAdd("d", 1, CDate(Cells(i + 1, 4)))
    Loop
 End If
 '时间判断,注意格式转换问题,用TimeValue
 If Cells(i, 5) = TimeValue("13:30:00") Or Cells(i, 7) = TimeValue("12:00:00") Then
    Cells(i, 8) = "0.5"
 Else
    Cells(i, 8) = "1"
 End If
 i = i + 1
Loop


End Sub

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝店铺被买家恶意投诉怎么办 苹果手机无法识别指纹怎么办 淘宝店铺虚假交易违规怎么办 斗鱼直播太卡怎么办 神笔添加视频尺码不符合怎么办 闲鱼卖家单号填错了怎么办 户户通没有信号强度怎么办 全民k歌qq登不上怎么办 手机直播没电了怎么办 淘宝退货卖家拒收怎么办 充的会员卡店家关门了怎么办 淘宝手机号码被注册了怎么办 淘宝不支持七天无理由退货怎么办 微信视频横屏怎么办 房子里潮气太重怎么办 淘宝不小心注销了怎么办 淘宝号不小心注销了怎么办 xp网络驱动没了怎么办 淘宝卖家客服态度差怎么办 怀孕吃辣椒喉咙好痛怎么办 淘宝店铺建议不要提交认证怎么办 淘宝买东西商家不退款怎么办 淘宝买东西商家不发货怎么办 在微信上买东西被骗了怎么办 新浪微博自动关注人怎么办 搜淘宝找不到关键词和店铺怎么办 小超市开在一起竞争太大怎么办 淘宝店铺被投诉盗图怎么办 充电宝ic坏了怎么办 淘宝店宝贝权重下降怎么办 淘宝卖家评分低怎么办 淘宝买东西客服不理人怎么办 支付宝本次交易嫌疑违规怎么办 支付宝一年的交易总额怎么办 交易关闭钱扣了怎么办 交易猫账号绑定支付宝打不开怎么办 拼多多涉假处罚怎么办 淘宝店铺重复铺货扣6分怎么办 帆布鞋子买大了怎么办 开淘宝店没销量怎么办 开淘宝店没有销量怎么办