quyenpv
Thu nhặt kiến thức
- Tham gia
- 5/1/13
- Bài viết
- 719
- Được thích
- 97
- Giới tính
- Nam
- Nghề nghiệp
- Decode cuộc đời!
Kính gửi các anh chị trên diễn đàn
Em hay theo dõi ngày hết hạn hợp đồng và các loại. Bình thường em hay tính thủ công dùng if các kiểu trường hợp. Nay em viết 1 hàm nhờ các anh kiểm tra, tối ưu giúp ạ
Em cám ơn các anh/chị
Em hay theo dõi ngày hết hạn hợp đồng và các loại. Bình thường em hay tính thủ công dùng if các kiểu trường hợp. Nay em viết 1 hàm nhờ các anh kiểm tra, tối ưu giúp ạ
Em cám ơn các anh/chị
Mã:
Function Songay_HD(FirstDate As Date, EndDate As Date) As String
If Not IsDate(FirstDate) Then Exit Function
If Not IsDate(EndDate) Then Exit Function
If FirstDate = Empty Then FirstDate = VBA.Date
If EndDate = Empty Then EndDate = DateValue("1000/1/1")
If EndDate < FirstDate Then
Songay_HD = "Tr" & ChrW(7877) & " h" & ChrW(7841) & "n " & FirstDate - EndDate & " ngày" 'Tre han
ElseIf FirstDate = EndDate Then
Songay_HD = "Hôm nay h" & ChrW(7871) & "t h" & ChrW(7841) & "n"
ElseIf EndDate > FirstDate Then
years = IIf(EndDate > DateSerial(VBA.year(EndDate), VBA.month(FirstDate), VBA.day(FirstDate)), DateDiff("yyyy", FirstDate, EndDate), DateDiff("yyyy", FirstDate, EndDate) - 1)
If years < 1 Then
years = ""
Else
years = years & " n" & ChrW(259) & "m "
End If
months = IIf(VBA.day(EndDate) > VBA.day(FirstDate), Abs(VBA.month(FirstDate) - VBA.month(EndDate)), Abs(VBA.month(FirstDate) - VBA.month(EndDate)) - 1)
If months < 1 Then
months = ""
Else
months = months & " tháng "
End If
Days = IIf(VBA.day(EndDate) > VBA.day(FirstDate), VBA.day(EndDate) - VBA.day(FirstDate), (VBA.day(DateSerial(VBA.year(FirstDate), VBA.month(FirstDate) + 1, 1) - 1) - VBA.day(FirstDate)) + VBA.day(EndDate))
Songay_HD = "Còn " & years & months & Days & " ngày"
End If
End Function