如何用vba获取任意月份的最后一天的日期?

在excel 中有个工作表函数EOMONTH,可以返回指定日期的月所在最后一天的日期。

在vba中没有这样的函数,但是可以使用DateSerial函数变通的获取到任意月的最后一天的日期。

代码如下:

Sub QQ1722187970()
    Dim d1 As Date
    d1 = #12/25/2018#
    Dim d2 As Date
    d2 = VBA.DateSerial(Year(d1), Month(d1) + 1, 1) - 1
    Debug.Print d2
End Sub

实现原理就是先获取下个月的第一天的日期,然后再减去1,返回上个月的最后一天的日期。

       

仅有1条评论 发表评论

  1. ashan /

    可以再加入跨年 if month=12 then year=year+1 month = 1 day=0

发表评论