分享

VBA中常用的日期函数 | VBA实例教程

 gblhp 2015-02-16

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat1/226.html,VBA交流群273624828。

今天来讲一下VBA中一些常用的日期函数。先把代码写出来,再来一一讲解。

Sub test()
Dim t1, t2, t3, t4, t5, t6, t7, t8, t9, d, jgm, jgy
t1 = #9/20/2014#
t2 = #9/19/2014#
Debug.Print t1 - t2        '日期可以直接比大小或做运算
t3 = DateSerial(2014, 9, 7)
t4 = DateAdd("m", 1, #9/20/2014#)   '在原日期上加1月,2014/10/20
t5 = DateAdd("d", 1, #9/20/2014#)   '在原日期上加1天,2014/9/21
t6 = #9/20/2014# + 1        '在原日期上加1天,2014/9/21
Debug.Print t3, t4, t5, t6
t7 = Year(t1)     '提取日期的年份
t8 = Month(t1)    '提取日期的月份
t9 = Day(t1)
d = Day(DateSerial(Year(t1), Month(t1) + 1, 1) - 1)   '计算t1日期所在月有多少天
Debug.Print d
jgm = DateDiff("m", #7/20/2014#, #9/9/2014#)      '计算两个日期间隔多少个月,这里7月和9月间隔2个月
Debug.Print jgm
End Sub

在VBA中,日期直接赋值的方式是#日期#,之间用“/”连接,日期可以直接加减数字,代表的是在当前日期加几天或减几天,两个日期之间可以直接比较大小。

给日期变量赋值可以用DateSerial函数,其三个参数分别是年、月、日,这个函数在不能事先知道具体日期时可以用,其中的年、月、日三个参数可以是其他的变量,例如DateSerial(range("A1"),range("B1"),range("C1"))。

DateAdd函数可以在当前日期上直接加月数,比如DateAdd("m", 1, #9/20/2014#) 表示在2014年9月20日这个日期上加上1个月,参数“m”就是月的缩写,加天数“m”变成“d”即可,当然加天数也可以在日期后直接加数字,效果是一样的。

Year,Month,Day三个函数分别代表取日期的年、月、日的数字,Day(DateSerial(Year(t1), Month(t1) + 1, 1) - 1)就是计算日期表示的这个月有多少天,就是用下个月1号减1得这个月最后一天,再用Day函数取出这个天数。

DateDiff可以计算两个日期间隔多少个月或天,“m”代表月,“d”代表天。

在DateAdd和Datediff中不能直接计算年,因为一年是固定12个月,所以折算一下就好了。

再补充一个,当前日期是Date。

示例文件就不上了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多