【VBA研究】利用DateAdd函数取上月或上年同期的日期

作者:iamlaosong

     DateAdd函数返回一个日期,这一日期加上了一个时间间隔。通过这个函数可以计算很多我们需要的日期,比如上月上年同期日期等。

     语法

    DateAdd(interval, number, date)

    DateAdd 函数语法中有下列命名参数:

    interval  必要。字符串表达式,是所要加上去的时间间隔。它具有好多设定值,比如”m”为月;”d”为日;”yyyy”为年等等。

    number  必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。

  date 必要。表示日期的文字。

下面举例说明如何利用这个函数得到我们所需的日期:

    e_date1 = CDate("2015-3-18")                          ' 赋值
    b_date1 = e_date1 - Day(e_date1) + 1                  ' 一般取当月1日方法
    b_date1 = DateAdd("d", 1 - Day(e_date1), b_date1)     ' 利用DateAdd函数取当月1日
    y_date1 = DateAdd("m", 1 - Month(b_date1), b_date1)   ' 利用DateAdd函数取1月1日
    e_date2 = DateAdd("m", -1, e_date1)                   ' 利用DateAdd函数取上月同期
    e_date3 = DateAdd("m", -12, e_date1)                  ' 利用DateAdd函数取上年同期
    e_date3 = DateAdd("yyyy", -1, e_date1)                ' 利用DateAdd函数取上年同期

需要说明的是,取上月同期时,如果当前日期的天数大于上月总天数,则取上月最大天数作为日期,例如取3月31日上月同期时,如果2月分总天数是28,则取出的日期是2月28日,不会产生错误日期。


你可能感兴趣的:(【VBA研究】利用DateAdd函数取上月或上年同期的日期)