- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,963
Bạn sai chổ này:Mình đổi như vậy vẫn chưa đúng bạn xem giúp:
Dk1 = Weekday(Startday + i, vbMonday)
mà bạn ghi là:
Dk1 = Weekday(Startday + i, vbSunday)
Tôi sai chổ này:
Dk1 = Weekday(Startday + i, vbMonday) <5
mà lý ra phải là:
Dk1 = Weekday(Startday + i,vbMonday) <6
Sửa lại:
PHP:
Function Workday(Startday As Date, Days As Long, Optional Holidays As Range, Optional FromFirstDay As Boolean = True) As Date
Dim i As Long, Dk1 As Boolean, Dk2 As Boolean, Dk3 As Boolean
On Error Resume Next
If Days <= 0 Or IsDate(Startday) = False Then Exit Function
If Holidays Is Nothing Then Dk2 = True: Dk3 = True
i = 1 + FromFirstDay
Do
Dk1 = Weekday(Startday + i, vbMonday) < 6
Dk2 = WorksheetFunction.CountIf(Holidays, Startday + i) = 0
Dk3 = WorksheetFunction.CountIf(Holidays, Format(Startday + i, "mm-dd")) = 0
If Dk1 And Dk2 And Dk3 Then Workday = Startday + i: Days = Days - 1
i = i + 1
Loop Until Days = 0
End Function