前景提要
今天我們繼續來分享一些日期方面的問題,今天公司的HR過來找我,向我請教有沒有什麼好的方法能夠快速的計算出合同到期的時間,他說之前我雖然分享過一篇關於計算員工在職時間方面的文章,他也看過,但是他覺得並不適合他的工作場景,因為那個只能計算兩個時間之間差距,現在他反而是有了合同的時效,然後希望我計算出合同到期的時間,這樣她才可以方便的統計人員,通知相關人員做好工作交接和相關的結算工作
方法分析
我稍微想了下就有答案了,其實這樣並不算是很難,可以說是非常的簡單的,依然是藉助我們VBA中的一個日期函數EDATE,這個方法的作用就是獲得去多少個月份之後的日期,和之前我們學過的datediff有幾分相似,但是他的功能沒有datedifdd那麼強大,因為它只能夠計算出月份,不能計算出天數,年數,季度,因為功能少了很多,所以他的方法結構也少了很多,EDATE(start_date,months)就是他的語法組成,start_date:毫無疑問代表開始的那個日期,months:表示start_date 之前或之後的月份數,有了方法,我們就可以開工了。
場景模擬
假設我們現在手上有這樣一份數據表,涵蓋了當前臨時招聘過來的所有的臨時員工的入職情況,
現在我們已經有了合同的有效期時長,因為崗位的不同,這些臨時員工的合同期限也是不同的,我們現在來計算每個員工的合同到期時間,方便我們的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
來看看效果
成功的計算出了每個員工的合同到期時間,完美的達到了我們的要求。
總結
今天分享的知識點也是比較簡單,就一個非常簡單的方法,EDATE方法,他能夠幫助我們輕鬆的計算出多少個月之前或者之後的日期,大家只需要記住固定的搭配和格式就好,具體的使用場景大家也可以繼續摸索下,今天時間有點倉促,寫的有點捉急,請大家諒解。