前景提要
好了今天我們繼續(xù)來分享一些日期方面的問題档悠,今天公司的HR過來找我,向我請(qǐng)教有沒有什么好的方法能夠快速的計(jì)算出合同到期的時(shí)間饭玲,他說之前小編雖然分享過一篇關(guān)于計(jì)算員工在職時(shí)間方面的文章,他也看過,但是他覺得并不適合他的工作場(chǎng)景扣唱,因?yàn)槟莻€(gè)只能計(jì)算兩個(gè)時(shí)間之間差距,現(xiàn)在他反而是有了合同的時(shí)效团南,然后希望我計(jì)算出合同到期的時(shí)間噪沙,這樣她才可以方便的統(tǒng)計(jì)人員,通知相關(guān)人員做好工作交接和相關(guān)的結(jié)算工作
方法分析
我稍微想了下吐根,就有了答案了正歼,其實(shí)這樣并不算是很難,可以說是非常的簡(jiǎn)單的拷橘,依然是借助我們VBA中的一個(gè)日期函數(shù)EDATE,這個(gè)方法的作用就是獲得去多少個(gè)月份之后的日期局义,和之前我們學(xué)過的datediff有幾分相似喜爷,但是他的功能沒有datedifdd那么強(qiáng)大,因?yàn)樗荒軌蛴?jì)算出月份萄唇,不能計(jì)算出天數(shù)檩帐,年數(shù),季度穷绵,因?yàn)楣δ苌倭撕芏嘟嗡运姆椒ńY(jié)構(gòu)也少了很多,EDATE(start_date,months)就是他的語法組成仲墨,start_date:毫無疑問代表開始的那個(gè)日期勾缭,months:表示start_date 之前或之后的月份數(shù),有了方法目养,我們就可以開工了俩由。
場(chǎng)景模擬
假設(shè)我們現(xiàn)在手上有這樣一份數(shù)據(jù)表,涵蓋了當(dāng)前臨時(shí)招聘過來的所有的臨時(shí)員工的入職情況癌蚁,
現(xiàn)在我們已經(jīng)有了合同的有效期時(shí)長(zhǎng)幻梯,因?yàn)閸徫坏牟煌@些臨時(shí)員工的合同期限也是不同的努释,我們現(xiàn)在來計(jì)算每個(gè)員工的合同到期時(shí)間碘梢,方便我們的HR進(jìn)行工作的安排。
Sub test()
Dim i&
For i = 6 To 17
Cells(i, 5) = WorksheetFunction.EDate(Cells(i, 3), Cells(i, 4))
Next i
End Sub
來看看效果
成功的計(jì)算出了每個(gè)員工的合同到期時(shí)間伐蒂,完美的達(dá)到了我們的要求煞躬。