2

我正在运行以下表达式来比较 2 个日期的差异。如果两个日期都在单元格中,我希望它返回 0,但如果 Date2 为空白,我希望显示差异。现在,如果 date2 中没有日期,我只会得到 #ERROR。任何想法将不胜感激。

expr2: NetWorkDays([Date1],[Date2])

Option Compare Database 

Public Function NetWorkdays(dteStart As Date, dteEnd As Date) As Integer 

Dim intGrossDays As Integer 
Dim dteCurrDate As Date 
Dim i As Integer 

intGrossDays = DateDiff("d", dteStart, dteEnd) 
NetWorkdays = 0 

For i = 0 To intGrossDays 
dteCurrDate = dteStart + i 
If Weekday(dteCurrDate, vbMonday) < 6 Then 
End If 
Next i 

End Function
4

1 回答 1

1

如果您不NetWorkdays = 0从函数中删除 ,该函数将始终返回 0 ,并且如果您不在 if 语句中将调用函数的位置换行,您将继续收到错误,如下所示:

If Not IsNull(Date2) Then
txtResult = NetWorkdays(Date1, Date2)
Else
txtResult = 0
End If

txtResult 是您要在其中显示结果的文本框。

您可能想查看此链接http://msdn.microsoft.com/en-us/library/bb258196(v=office.12).aspx。这是一个设计用于计算两个日期之间的工作日数的函数。

使用这个函数,你应该得到你想要的结果,如下所示:

If Not IsNull(Date2) Then
txtResult = 0
Else
txtResult = Work_Days(Date1, Now())
End If
于 2012-07-19T19:01:07.860 回答