Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hàm] Hàm Work_Days để tính thời gian làm việc giữa BegDate và EndDate
#1
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
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname , sorryikillyo , maidinhdan
#2
(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

Nho Bac cho vi du cu the di nao?
Chữ ký của hoaiitktv Xin chào, mình là hoaiitktv, Tham gia http://thuthuataccess.com/forum từ ngày 15-03 -13.
Reply
Những người đã cảm ơn TruongVanTruong


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hàm] Demo_[Hàm] Tính thâm niên như BHXH (maidinhdan) maidinhdan 18 2,255 08-05-16, 09:20 PM
Bài mới nhất: maidinhdan
  Hướng Dẫn Tổng hợp các hàm Toán học nâng cao: thống kê, xác xuất, tuyến tính..(Ví dụ) maidinhdan 0 178 16-04-16, 01:15 PM
Bài mới nhất: maidinhdan
  Dùng VBA để tính tồn kho Xuân Thanh 4 1,970 23-07-15, 04:15 PM
Bài mới nhất: bvchauthanh
  Tính Toán thời gian giữa hai thời điểm với datediff Noname 16 11,783 29-06-15, 09:27 PM
Bài mới nhất: Noname
  [Hàm] Một số hàm liên quan đến ngày tháng và tính toán Xuân Thanh 2 938 20-03-15, 11:36 AM
Bài mới nhất: Xuân Thanh

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ