原标题:利用VBA代码,如何获得当月的最后一天日期
大家好,我们今日继续讲解VBA代码解决方案的第52讲内容,这讲的内容是利用VBA代码,如何获得当月的最后一天日期.在实际工作中经常需要根据给定的日期计算其所属月份的最后一天,此时怎么计算呢?
我们首先要讲解一下VBA中涉及到日期的知识点:
一:Year、Month和Day函数:这三个函数分别返回代表指定日期的年、月、日的整数,语法如下:Year(Date) Month(Date) Day(Date)
其中参数Date可以是任何能够表示日期的Variant、数值表达式、字符串表达式或它们的组合。
二:DateSerial函数:此函数返回包含指定的年、月、日的Variant (Date),语法如下:
DateSerial(year, month, day)
其中参数year、 month、day分别表示指定的年、月、日。
为了指定某个日期, DateSerial 函数中的每个参数的取值范围应该是可接受的,即日的取值范围应在1-31之间,而月的取值范围应在1-12之间。但是,当一个数值表达式表示某日之前或其后的年、月、日数时,也可以为每个使用这个数值表达式的参数指定相对日期。
本节要讲解的就是利用DateSerial函数求具体某具体月的最后一天的方法,其实,对于DateSerial函数而言,当任何一个参数的取值超出可接受的范围时,它会自动地向可接受的时间单位进行调整,本例中将day参数设置为0,这时被解释成month参数指定月的前一天,即表达式Month(Date) + 1指定的下一个月的前一天,也就是本月的最后一天。
思路有了,下面看我们的代码所示。
Sub mynz_52()
Dim MyDateStr As Byte
MyDateStr = Day(DateSerial(Year(Date), Month(Date) + 1, 0))
MsgBox "本月的最后一天是" & Month(Date) & "月" & MyDateStr & "号"
End Sub
代码解析:
上述的MySerial过程配合使用了4个VBA内置函数Year、Month、Day和DateSerial完成计算并使用消息框显示当月最后一天的日期。
a) 上面的Date为当前的具体日期。
b) Month(Date) + 1 表示当前月的下个月。
c) MyDateStr = Day(DateSerial(Year(Date), Month(Date) + 1, 0)) 表示当前月的下个月的前一天。
代码实测,首先看代码窗口:
看运行后返回的值:
为了看到Date值我们可以做如下截图的操作:当光标点到Date上是就会出现下面的提示:
今日内容回向:
1 利用VBA代码获得当前月的最后一天,思路是如何建立的?
2 如何获取某个变量的即时值?(设置中断模式,是代码调试的有效手段)
返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。