Mô tả DateDiff
Trả về sự khác biệt giữa hai giá trị ngày, dựa trên khoảng thời gian được chỉ định.
Ví dụ về DateDiff Đơn giản
Đây là một ví dụ DateDiff đơn giản:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("yyyy", # 1/1/2019 #, # 8/1/2021 #)Kết thúc Sub |
Mã này sẽ trả về 2. Đây là sự khác biệt theo năm (được biểu thị bằng “yyyy”) giữa 2 ngày. (2021 - 2022 = 2)
Trong ví dụ trên, thay đổi vị trí của date1 và date2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("yyyy", # 8/1/2021 #, # 1/1/2019 #)Kết thúc Sub |
Mã này sẽ trả về -2.
Cú pháp DateDiff
Trong VBA Editor, bạn có thể nhập “DateDiff (” để xem cú pháp cho Hàm DateDiff:
Hàm DateDiff chứa 5 đối số:
Khoảng thời gian: Đơn vị thời gian (Ngày, Tháng, Năm, v.v.). Nhập dưới dạng chuỗi. (ví dụ: “m” cho Tháng)
Thiết lập | Sự miêu tả |
---|---|
yyyy | Năm |
NS | Phần tư |
NS | Tháng |
y | Ngày trong năm |
NS | Ngày |
w | Ngày trong tuần |
đệ | Tuần |
NS | Giờ |
n | Phút |
NS | Thứ hai |
Date1, Date2: Hai ngày bạn muốn sử dụng trong tính toán.
Ngày đầu tuần: Một hằng số chỉ định ngày đầu tiên trong tuần. Đây là tùy chọn. Nếu không được chỉ định, Chủ nhật được giả định.
Hằng số | Giá trị | Sự miêu tả |
---|---|---|
vbUseSystem | 0 | Sử dụng cài đặt API NLS. |
vbSunday | 1 | Chủ nhật (mặc định) |
vbMonday | 2 | thứ hai |
vbTuesday | 3 | Thứ ba |
vbWednesday | 4 | thứ Tư |
vbThursday | 5 | Thứ năm |
vbFriday | 6 | thứ sáu |
vbSaturday | 7 | Thứ bảy |
FirstWeekOfYear: Một hằng số chỉ định tuần đầu tiên của năm. Đây là tùy chọn. Nếu không được chỉ định, tuần đầu tiên được giả định là tuần xảy ra ngày 1 tháng 1.
Hằng số | Giá trị | Sự miêu tả |
---|---|---|
vbUseSystem | 0 | Sử dụng cài đặt API NLS. |
vbFirstJan1 | 1 | Bắt đầu với tuần mà ngày 1 tháng 1 xảy ra (mặc định). |
vbFirstFourDays | 2 | Bắt đầu với tuần đầu tiên có ít nhất bốn ngày trong năm mới. |
vbFirstFullWeek | 3 | Bắt đầu với tuần đầu tiên của năm. |
Lập trình VBA | Code Generator làm việc cho bạn!
Ví dụ về hàm DateDiff trong Excel VBA
Ngày tham chiếu
Để bắt đầu, chúng tôi sẽ trình bày các cách khác nhau để tham chiếu ngày bằng Hàm VBA DateDiff.
Mỗi hàm DateDiff này tạo ra cùng một kết quả:
123456789 | Sub DateDiff_ReferenceDates ()MsgBox DateDiff ("m", # 4/1/2019 #, # 8/1/2021 #)MsgBox DateDiff ("m", DateSerial (2019, 4, 1), DateSerial (2021, 8, 1))MsgBox DateDiff ("m", DateValue ("ngày 1 tháng 4 năm 2022"), DateValue ("ngày 1 tháng 8 năm 2022"))Kết thúc Sub |
Hoặc bạn có thể tham chiếu các ô chứa ngày tháng:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Phạm vi ("C2"). Giá trị, Phạm vi ("C3"). Giá trị)Kết thúc Sub |
Hoặc tạo và tham chiếu các biến ngày:
123456789 | Sub DateDiff_Variable ()Dim dt1 As Date, dt2 As Datedt1 = # 4/1/2019 #dt2 = # 8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)Kết thúc Sub |
Bạn mệt mỏi với việc tìm kiếm ví dụ về mã VBA? Hãy thử AutoMacro!
Sử dụng các đơn vị khoảng thời gian khác nhau
Khu
123 | Sub DateDiff_Quarter ()MsgBox "số phần tư:" & DateDiff ("q", # 1/1/2019 #, # 1/1/2021 #)Kết thúc Sub |
Tháng
123 | Sub DateDiff_Month ()MsgBox "số tháng:" & DateDiff ("m", # 1/1/2019 #, # 1/1/2021 #)Kết thúc Sub |
Ngày
123 | Sub DateDiff_Day ()MsgBox "số ngày:" & DateDiff ("d", # 1/1/2019 #, # 1/1/2021 #)Kết thúc Sub |
Tuần
123 | Sub DateDiff_Week ()MsgBox "số tuần:" & DateDiff ("w", # 1/1/2019 #, # 1/1/2021 #)Kết thúc Sub |
Giờ
123456789101112 | Sub DateDiff_Hour ()Dim dt1 As DateDim dt2 As DateDim nDiff As Longdt1 = # 8/14/2019 9:30:00 SA #dt2 = # 8/14/2019 1:00:00 CH #nDiff = DateDiff ("h", dt1, dt2)MsgBox "giờ:" & nDiffKết thúc Sub |
Phút
123 | Sub DateDiff_Minute ()MsgBox "phút:" & DateDiff ("n", # 8/14/2019 9:30:00 AM #, # 8/14/2019 9:35:00 AM #)Kết thúc Sub |
Giây
123 | Sub DateDiff_Second ()MsgBox "giây:" & DateDiff ("s", # 8/14/2019 9:30:10 AM #, # 8/14/2019 9:30:22 AM #)Kết thúc Sub |