Xuân Thanh > 01-07-12, 11:58 AM
Function Work_Days(BegDate As Variant, EndDate As Variant) As Long
Dim WholeWeeks As Variant
Dim DateCnt As Variant
Dim EndDays As Integer
On Error GoTo Err_Work_Days
BegDate = DateValue(BegDate)
EndDate = DateValue(EndDate)
WholeWeeks = DateDiff("w", BegDate, EndDate)
DateCnt = DateAdd("ww", WholeWeeks, BegDate)
EndDays = 0
Do While DateCnt <= EndDate
If Format(DateCnt, "ddd") <> "Sun" And _
Format(DateCnt, "ddd") <> "Sat" Then
EndDays = EndDays + 1
End If
DateCnt = DateAdd("d", 1, DateCnt)
Loop
Work_Days = WholeWeeks * 5 + EndDays
Exit Function
Err_Work_Days:
If Err.Number = 94 Then
Work_Days = 0
Exit Function
Else
MsgBox "Error " & Err.Number & ": " & Err.Description
End If
End Functionhoaiitktv > 20-03-13, 11:37 AM
(01-07-12, 11:58 AM)Xuân Thanh Đã viết:Mã:Function Work_Days(BegDate As Variant, EndDate As Variant) As Long Dim WholeWeeks As Variant Dim DateCnt As Variant Dim EndDays As Integer On Error GoTo Err_Work_Days BegDate = DateValue(BegDate) EndDate = DateValue(EndDate) WholeWeeks = DateDiff("w", BegDate, EndDate) DateCnt = DateAdd("ww", WholeWeeks, BegDate) EndDays = 0 Do While DateCnt <= EndDate If Format(DateCnt, "ddd") <> "Sun" And _ Format(DateCnt, "ddd") <> "Sat" Then EndDays = EndDays + 1 End If DateCnt = DateAdd("d", 1, DateCnt) Loop Work_Days = WholeWeeks * 5 + EndDays Exit Function Err_Work_Days: If Err.Number = 94 Then Work_Days = 0 Exit Function Else MsgBox "Error " & Err.Number & ": " & Err.Description End If End Function
P/S : Hàm tính cho một tuần làm việc 5 ngày, trừ thứ 7 và chủ nhật. Các bạn tự chế lại theo yêu cầu sử dụng
Thân mến