excel用自定义函数获取某月中指定日期的数量

网友投稿 443 2022-12-03

Excel用自定义函数获取某月中指定日期的数量

如果我们要获取某月中指定日期的数量,例如,2009年1月中有几个星期一?用Excel内置的日期时间函数无法解决这个问题。我们可以用自定义函数的方法来解决。按Alt+F11打开VBA编辑器,单击菜单“插入→模块”,在右侧的代码窗口中输入自定义函数:

Function WeekDaysInMonth(iYear As Integer, iMonth As Integer, iDay As Integer)Dim i, iDaysInMonth As IntegerDim LastDateInMonth As DateIf iMonth < 1 Or iMonth > 12 Or iDay < 1 Or iDay > 7 ThenWeekDaysInMonth = "错误"Exit FunctionEnd IfiDaysInMonth = day(DateAdd("d", -1, DateSerial(iYear, iMonth + 1, 1)))LastDateInMonth = DateSerial(iYear, iMonth, iDaysInMonth)For i = iDaysInMonth – 1 To 0 Step -1If Weekday(LastDateInMonth – i, vbMonday) = iDay ThenWeekDaysInMonth = WeekDaysInMonth + 1End IfNext iEnd Function

这个自定义函数有3个整数参数,即年、月和代表星期的数值。最后一个参数用1-7的数值表示星期一至星期日。

使用方法是在单元格中输入

=weekdaysinmonth(年,月,星期数值)

excel用自定义函数获取某月中指定日期的数量

例如要获取2009年12月中星期日的数量,在单元格中输入公式:

=weekdaysinmonth(2009,12,7)

公式结果返回4,表示2009年12月中有4个星期日。另外,输入的参数如果超出范围,如输入“=weekdaysinmonth(2009,12,10)”,最后一个参数超出范围,公式返回“错误”。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:excel中利用VBA在受到保护的工作表中进行自动筛选
下一篇:EXCEL如何使用VBA汇总当前路径下的工作簿的相应的工作表?
相关文章