下面我们就来看看在Excel VBA程序,计算两个日期之间的工作日数。

平日有:周一,周二,周三,周四和周五。

现状:

Weekdays in 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.将你的命令按钮宏并对其进行测试。

结果:

Weekdays Result