网友冯先生问:有高手制作一个自定义一段时间有几个星期X的函数吗?
针对此贴,做了个自定义模块函数:
'=================================================
'-函数名称: SumDay
'-功能描述: 将某一个时间段内日期统计有多少个星期几
'-输入参数: 日期型数值 如第一个控件输入 2012-2-1 第二个控件输入 2012-2-29
'-返回参数: 返回日期型数值为数字型型 即1 2 3 这种
'-使用示例1: =SumDay([DateBegin],[DateEnd],3) '返某时间段内星期三有:3
'-使用示例2: =SumDay(#2/1/2012#, #2/29/2012#, 3) '返2012年2月1日至2012年2月29日内星期三有:5
'-作 者: 叶海峰
'-创建日期; 2012-2-27 16:18:00
'=================================================
Public Function SumDay(DateBegin As Date, DateEnd As Date, DayOfWeek As Byte) As Integer
Dim datecount As Integer, count As Integer, i As Integer
If DateBegin > DateEnd Then MsgBox "开始日期不能大于结束日期": Exit Function
datecount = DateEnd - DateBegin
For i = 0 To datecount
If Weekday(DateBegin + i, vbMonday) = DayOfWeek Then count = count + 1 '每周从星期1开始计算
Next
SumDay = count
End Function
'测试示例,按F5运行看效果
Sub a()
'3代表星期三,合起来意思就是某段时间内有几个星期三; 改成4就是有多少个星期四,以此类推
MsgBox SumDay(#2/1/2012#, #2/29/2012#, 3)
End Sub
示例如下图:
附件:
点击下载此附件