原标题:利用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 如何获取某个变量的即时值?(设置中断模式,是代码调试的有效手段) 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。