Liệt kê các ngày cộng dồn mong muốn vào 1 ô. Nhờ mọi người giúp mình ạ.

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài
Code này anh thêm tham số ngày kết thúc để có thể chọn được không ạ. Do trong quá trình làm em làm ngày hôm nay nhưng ngày kết thúc chọn ngày khác ạ.
Ý bạn là xác định ngày cuối thay vì ngày today()?
Trong code này mình cố định ngày cuối trong code luôn. Nếu bạn muốn chọn ngày thì thay nó bằng 1 cái InputBox nhé
ngaycuoi = DateSerial(2024, 11, 3)
giả sử ngày cuối là ngày 03/11/2024

PHP:
Option Explicit
Function listngay(ngaybd As Date, songay As Integer) As String
If ngaybd = 0 Or songay = 0 Then
    listngay = "O nay khong co so lieu!"
    Exit Function
End If
Dim c&, st As String, ngaykt As Date, ngaycuoi As Date, wf As Object
Set wf = WorksheetFunction
ngaycuoi = DateSerial(2024, 11, 3) ' thay doi ngay tuy chon. Co the thay bang InputBox de chon ngay moi khi run, neu ngay nay co su bien dong
Do
    c = c + 1
    ngaybd = ngaybd + songay
    ngaykt = wf.Min(ngaycuoi, wf.WorkDay_Intl(ngaybd - 1, 1, "0000000", Sheets("LICH NGHI LE").Range("A2:A5")))
    st = IIf(st = "", ngaykt, st & ", " & ngaykt)
    If ngaykt >= ngaycuoi Then Exit Do
Loop
listngay = st
End Function
 

File đính kèm

  • tinhngay.xlsm
    21.4 KB · Đọc: 2
Ý bạn là xác định ngày cuối thay vì ngày today()?
Trong code này mình cố định ngày cuối trong code luôn. Nếu bạn muốn chọn ngày thì thay nó bằng 1 cái InputBox nhé
ngaycuoi = DateSerial(2024, 11, 3)
giả sử ngày cuối là ngày 03/11/2024

PHP:
Option Explicit
Function listngay(ngaybd As Date, songay As Integer) As String
If ngaybd = 0 Or songay = 0 Then
    listngay = "O nay khong co so lieu!"
    Exit Function
End If
Dim c&, st As String, ngaykt As Date, ngaycuoi As Date, wf As Object
Set wf = WorksheetFunction
ngaycuoi = DateSerial(2024, 11, 3) ' thay doi ngay tuy chon. Co the thay bang InputBox de chon ngay moi khi run, neu ngay nay co su bien dong
Do
    c = c + 1
    ngaybd = ngaybd + songay
    ngaykt = wf.Min(ngaycuoi, wf.WorkDay_Intl(ngaybd - 1, 1, "0000000", Sheets("LICH NGHI LE").Range("A2:A5")))
    st = IIf(st = "", ngaykt, st & ", " & ngaykt)
    If ngaykt >= ngaycuoi Then Exit Do
Loop
listngay = st
End Function
Ý là mình muốn xác định ngày cuối giống như xác định ngày bắt đầu đó ạ. Để chọn vào các ô trong excel cho tiện.
 
Mình xin được phép gởi lại file dữ liệu mong muốn nhờ mọi người giúp đỡ ạ. Em cũng đã liệt kê các ngày lễ để bỏ qua từ năm 2021 đến 2027
 

File đính kèm

  • file(1).xlsm
    19.7 KB · Đọc: 0
Web KT

Bài viết mới nhất

Back
Top Bottom