分享

VBA 技巧:计算一个月有多少天?

 知识情报院 2022-02-21

问题:

有时我们需要知道一个月有多少天,或者知道最后一天是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计算一年中月份的天数,大家都学会了吗?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多