Lớp học GPE tháng 10 - TPHCM: Conditional Formatting và Data Validation (tối 4, 6/10) | Excel cơ bản (tối 9, 11, 13/10) |
Thuần thục các hàm dò tìm (tối 10, 12/10) | Tất tần tật về PivotTable (tối 16, 18, 20/10) |
Tất tần tật về Filter và Advanced Filter (tối 23, 25/10) | Name động và biểu đồ (tối 24, 26, 28/10)

Đăng ký học Khởi đầu cùng Google Spreadsheet - 2 chủ nhật 1 và 8/10 - TPHCM

Đăng ký học Xây dựng ứng dụng Form bằng VBA - 2 chủ nhật 15 và 22/10 - TPHCM

Ngày tháng trong excel

Thảo luận trong 'Học tập Online' bắt đầu bởi cadafi, 4 Tháng năm 2008.

  1. cadafi

    cadafi New Style! New Life! Staff Member Super Moderator

    Tất cả các vấn đề về ngày tháng trong excel

    Trên diễn đàn chúng ta đã có rất nhiều thông tin bổ ích về các hàm ngày tháng trong excel. Mình cũng xin góp vào một ít. Đây là tất cả những gì liên quan đến ngày tháng trong excel, có thể các bạn đã biết, và có thể chưa biết. Hy vọng sẽ có ích cho các bạn.
    Nguồn lấy từ : http://www.mvps.org/dmcritchie/excel/datetime.htm
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 4 Tháng năm 2008
  2. digita

    digita Guest

    Cám ơn bạn Kiệt. Sẳng nói về các hàm ngày tháng trong VBA, hàm dateadd với tham số "w" dếm ngày trong tuần trừ thứ 7 & CN. Thử nhé:

    Mã:
     msgbox dateadd("d", 10, now)


    Mã:
     msgbox dateadd("w", 10, now)
    2 code trên cho cùng 1 kết quả ngày tháng giống nhau. Cái lổ này Microsoft biết nhưng chưa thèm vá. Để khắc phục lổi này thì dùng code sau:

    Mã:
    '**********************************************************
       'Declarations section of the module
       '**********************************************************
          Option Explicit
    
       '==========================================================
       ' The DateAddW() function provides a workday substitute
       ' for DateAdd("w", number, date). This function performs
       ' error checking and ignores fractional Interval values.
       '==========================================================
       Function DateAddW(ByVal TheDate, ByVal Interval)
    
         Dim Weeks As Long, OddDays As Long, Temp As String
    
         If VarType(TheDate) <> 7 Or VarType(Interval) < 2 Or _
                    VarType(Interval) > 5 Then
            DateAddW = TheDate
         ElseIf Interval = 0 Then
            DateAddW = TheDate
         ElseIf Interval > 0 Then
            Interval = Int(Interval)
    
       ' Make sure TheDate is a workday (round down).
            Temp = Format(TheDate, "ddd")
            If Temp = "Sun" Then
               TheDate = TheDate - 2
            ElseIf Temp = "Sat" Then
               TheDate = TheDate - 1
            End If
    
       ' Calculate Weeks and OddDays.
            Weeks = Int(Interval / 5)
            OddDays = Interval - (Weeks * 5)
            TheDate = TheDate + (Weeks * 7)
    
       ' Take OddDays weekend into account.
            If (DatePart("w", TheDate) + OddDays) > 6 Then
               TheDate = TheDate + OddDays + 2
            Else
               TheDate = TheDate + OddDays
            End If
    
            DateAddW = TheDate
         Else                         ' Interval is < 0
            Interval = Int(-Interval) ' Make positive & subtract later.
    
       ' Make sure TheDate is a workday (round up).
            Temp = Format(TheDate, "ddd")
            If Temp = "Sun" Then
               TheDate = TheDate + 1
            ElseIf Temp = "Sat" Then
               TheDate = TheDate + 2
            End If
    
       ' Calculate Weeks and OddDays.
            Weeks = Int(Interval / 5)
            OddDays = Interval - (Weeks * 5)
            TheDate = TheDate - (Weeks * 7)
    
       ' Take OddDays weekend into account.
            If (DatePart("w", TheDate) - OddDays) < 2 Then
               TheDate = TheDate - OddDays - 2
            Else
               TheDate = TheDate - OddDays
            End If
    
            DateAddW = TheDate
          End If
    
       End Function
    
     

Chia sẻ trang này