Tôi làm được code tính bao nhiêu ngày lễ, hay ngày thứ mấy trong 1 khoảng thời gian cụ thể, nhờ các bạn làm giúp 1 code như sau tính ngày hết hạn thử việc. Thấy 1 số bạn cũng có nhu cầu mà tôi không viết được.
EndDate(ngaydau,songaythuviec,ngayle)
songaythuviec = a
ngayle là range
ngaydau là date
Xin cám ơn!
Đính kèm code tính ngayle và ngaynghi (có edit)
EndDate(ngaydau,songaythuviec,ngayle)
songaythuviec = a
ngayle là range
ngaydau là date
Xin cám ơn!
Đính kèm code tính ngayle và ngaynghi (có edit)
Function songay(ngay1 As Date, ngay2 As Date, Thu As Integer) As Integer
Dim i As Integer
Dim j As Integer
Dim ThoiGian As Integer
Dim ngaycuoi As Date
Dim ngaydau As Date
If ngay1 > ngay2 Then
ngaycuoi = ngay1
ngaydau = ngay2
Else
ngaycuoi = ngay2
ngaydau = ngay1
End If
'lay hieu so ngaycuoi-ngaydau
'neu thu =0, tinh bao nhieu T7+CN
If Thu > 8 Then
MsgBox ("Ban nhap sai-nhap lai thu, thu < 8")
Exit Function
End If
ThoiGian = ngaycuoi - ngaydau
For i = ThoiGian To 0 Step -1
'1 la CN, 2 la thu 2 ....,7 la thu 7
'neu thu =0 tinh bao nhieu thu bay va cn
If Thu = 0 And (Weekday(ngaycuoi - i) = 1 Or Weekday(ngaycuoi - i) = 7) Then
songay = songay + 1
End If
If Weekday(ngaycuoi - i) = Thu Then
songay = songay + 1
End If
Next i
End Function
Function songayle(ngay1 As Date, ngay2 As Date, ngayle As Range)
Dim i As Integer
Dim ThoiGian As Integer
Dim ngaycuoi As Date
Dim ngaydau As Date
If ngay1 > ngay2 Then
ngaycuoi = ngay1
ngaydau = ngay2
Else
ngaycuoi = ngay2
ngaydau = ngay1
End If
'lay hieu so ngaycuoi-ngaydau
ThoiGian = ngaycuoi - ngaydau
For i = ThoiGian To 0 Step -1
If WorksheetFunction.CountIf(ngayle, ngaycuoi - i) > 0 Then
songayle = songayle + 1
End If
Next i
End Function
Lần chỉnh sửa cuối: