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

関数からを削除しない場合、関数は常に0を返します。また、NetWorkdays = 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を参照することをお勧めします。これは、2つの日付の間の稼働日数を計算するためのアクセス用に設計された関数です。

この関数を使用すると、次のような結果が得られるはずです。

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