问题:有时我们需要知道一个月有多少天,或者知道最后一天是31号还是30号 我们可以通过VBA代码来计算 Sub nb_days_month() '将日期传入变量,月/日/年 date_test = CDate("6/2/2012")
'获取该月的天数 nb_days = Day(DateSerial(Year(date_test), Month(date_test) + 1, 1) - 1) End Sub
代码解析:- 使用下个月的第一天减 1 ,即可得到这个月的最后一天
Sub nb_days_month() '将日期传入变量,月/日/年 date_test = CDate("6/2/2012") '获取日期中的年份和月份 var_month = Month(date_test) var_year = Year(date_test) '获取下个月的第一天 date_next_month = DateSerial(var_year, var_month + 1, 1) '使用下个月的第一天减 1 ,即可得到这个月的最后一天 last_day_month = date_next_month - 1 '最后一天,即是该月的天数 nb_days = Day(last_day_month) End Sub
将代码转变为自定义函数Function NB_DAYS(date_test As Date) NB_DAYS = Day(DateSerial(Year(date_test), Month(date_test) + 1, 1) - 1) End Function
Sub example() test = NB_DAYS(Range("A1")) MsgBox test End Sub
今天我们给大家分享了,如何使用VBA计算一年中月份的天数,大家都学会了吗?
|