前景提要
好了今天我们继续来分享一些日期方面的问题,今天公司的HR过来找我,向我请教有没有什么好的方法能够快速的计算出合同到期的时间,他说之前小编虽然分享过一篇关于计算员工在职时间方面的文章,他也看过,但是他觉得并不适合他的工作场景,因为那个只能计算两个时间之间差距,现在他反而是有了合同的时效,然后希望我计算出合同到期的时间,这样她才可以方便的统计人员,通知相关人员做好工作交接和相关的结算工作
方法分析
我稍微想了下,就有了答案了,其实这样并不算是很难,可以说是非常的简单的,依然是借助我们VBA中的一个日期函数EDATE,这个方法的作用就是获得去多少个月份之后的日期,和之前我们学过的datediff有几分相似,但是他的功能没有datedifdd那么强大,因为它只能够计算出月份,不能计算出天数,年数,季度,因为功能少了很多,所以他的方法结构也少了很多,EDATE(start_date,months)就是他的语法组成,start_date:毫无疑问代表开始的那个日期,months:表示start_date 之前或之后的月份数,有了方法,我们就可以开工了。
场景模拟
假设我们现在手上有这样一份数据表,涵盖了当前临时招聘过来的所有的临时员工的入职情况,
image.png
现在我们已经有了合同的有效期时长,因为岗位的不同,这些临时员工的合同期限也是不同的,我们现在来计算每个员工的合同到期时间,方便我们的HR进行工作的安排。
Sub test()
Dim i&
For i = 6 To 17
Cells(i, 5) = WorksheetFunction.EDate(Cells(i, 3), Cells(i, 4))
Next i
End Sub
来看看效果
image.png成功的计算出了每个员工的合同到期时间,完美的达到了我们的要求。
网友评论