平日在Excel VBA
下面我们就来看看在Excel VBA程序,计算两个日期之间的工作日数。
平日有:周一,周二,周三,周四和周五。
现状:
注:日期是美国格式。月第一,二日。这种类型的格式取决于您的Windows区域设置。
1.首先,我们声明五个变量。日期类型的日期1,类型日期,日期类型的dateToCheck,Integer类型的daysBetween,Integer类型的平日的日期2和I型整数的。
Dim date1 As Date, date2 As Date, dateToCheck As Date Dim daysBetween As Integer, weekdays As Integer, i As Integer
2.我们初始化四个变量。我们使用DateDiff函数来初始化变量daysBetween。这个函数有三个参数。
因为我们希望DATE1和date2之间的天数我们“d”为第一个参数继续进行。
weekdays = 0 date1 = Range("B2") date2 = Range("B3") daysBetween = DateDiff("d", date1, date2)
3.我们需要检查日期1和date2(包括日期1和date2)之间的每个日期的日期是否是工作日还是不行。如果是,我们通过1递增平日我们将使用一个For Next循环。
For i = 0 To daysBetween
4.我们使用DateAdd函数来获取每一个我们需要检查的日期。这个函数有三个参数。我们在“d”填写的第一个参数,因为我们要添加的日子,我的第二个参数,DATE1第三个参数,因为我们想要我天添加日期1。这样的Excel VBA可以检查日期1和date2开始日期1之间的每个日期。添加以下代码行:
dateToCheck = DateAdd("d", i, date1)
例如:对于i = 3时,Excel VBA检查日期1 + 3天。
5.接下来,我们使用Weekday函数(编译功能),以检查是否dateToCheck是工作日还是不行。 Weekday函数的返回星期六1周日和7。因此,我们只递增变量平日如果平日(dateToCheck)不等于1,并且不等于7(<>手段不等于)。下面的代码行完成这项工作。
If (Weekday(dateToCheck) <> 1 And Weekday(dateToCheck) <> 7) Then weekdays = weekdays + 1 End If
6.不要忘记关闭循环。
Next i
7.最后,我们使用显示一个MsgBox的工作日数。我们使用&运算符来连接(连接)两个字符串。虽然平日里是不是在这里工作的字符串。
MsgBox weekdays & " weekdays between these two dates"
8.将你的命令按钮宏并对其进行测试。
结果: