Nhờ anh chị giúp em hàm workday trong vba không tính được ngày nghỉ ạ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

nguyenvantu29

Thành viên chính thức
Tham gia
1/6/21
Bài viết
50
Được thích
2
Trong file test.xlsm em muốn dùng hàm workday để tính ngày nhận kết quả, nhưng thực hiện trên userform thì công thức không bỏ được các ngày nghỉ, còn tính trên sheet thì công thức chạy bình thường. Em đã nghiên cứu nhiều lần không có kết quả. Mong các anh chi giúp đở em xin chân thành cám ơn.
 

File đính kèm

Trong file test.xlsm em muốn dùng hàm workday để tính ngày nhận kết quả, nhưng thực hiện trên userform thì công thức không bỏ được các ngày nghỉ, còn tính trên sheet thì công thức chạy bình thường. Em đã nghiên cứu nhiều lần không có kết quả. Mong các anh chi giúp đở em xin chân thành cám ơn.
Mình xin sửa lại code của bạn tý nhé.
 

File đính kèm

Upvote 0
Dạ cám ơn zzzsxxx01
Còn dòng lệnh
Me.txt_ngaynhanquyetdinh.Value = Format(Application.WorksheetFunction.WorkDay(Date, 20, holidayList), "dd/mm/yyyy")
nếu Date thay thế cho me.txt_ngaydangky để thay thế thì không được. Mong giúp đở ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
...
Me.txt_ngaynhanquyetdinh.Value = Format(Application.WorksheetFunction.WorkDay(Date, 20, holidayList), "dd/mm/yyyy")
nếu Date thay thế cho me.txt_ngaydangky để thay thế thì không được. Mong giúp đở ạ.
Bạn phải đưa nguyên dòng code mà bạn thay thế đó lên đây. Tôi phải xem bạn lấy me.txt_ngaydangky như thế nào mới phán xét được.
 
Upvote 0
Dạ cám ơn zzzsxxx01
Còn dòng lệnh
Me.txt_ngaynhanquyetdinh.Value = Format(Application.WorksheetFunction.WorkDay(Date, 20, holidayList), "dd/mm/yyyy")
nếu Date thay thế cho me.txt_ngaydangky để thay thế thì không được. Mong giúp đở ạ.
Bạn đã viết trong code gốc của bạn là txt_ngaydangky = Format(Date, "dd/mm/yyyy") rồi thì cần gì phải thay thế WorkDay(Date, 20, holidayList), "dd/mm/yyyy") thành WorkDay(me.txt_ngaydangky.value, 20, holidayList), "dd/mm/yyyy"). Mình không hiểu định ý của bạn là gì ?
 
Upvote 0
Vì em cần là khi thay đổi giá trị trong textbox ngày đăng ký thì bên textbox ngày nhận quyết định cập nhật công thức workday theo ạ. nên em thay Date thành Me.txt_ngaydangky. Nhưng chương trình báo lỗi Private Sub UserForm_Initialize()
Dim lr As Long
Dim holidayList As Range

With Sheet2
lr = .Range("A" & Rows.Count).End(xlUp).Row
Set holidayList = .Range("A2:A" & lr)
End With

Me.txt_ngaydangky.Value = Format(Date, "dd/mm/yyyy")
Me.txt_ngaynhanquyetdinh.Value = Format(Application.WorksheetFunction.WorkDay(Date, 20, holidayList), "dd/mm/yyyy")
End Sub
 

File đính kèm

  • Untitled.png
    Untitled.png
    86.7 KB · Đọc: 8
Upvote 0
Vậy thì sửa thành như vậy đi.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình đã thử chạy file bạn gởi nhưng khi mình sửa textbox ngày đăng ký thì bên textbox ngày quyết định vẫn không thay đổi
VD: ngày đăng ký 19/01/2024 thì ngày nhận quyết định vẫn là 22/02/2024 (Ngày đúng là 23/02/2024 )
 
Upvote 0
Bạn đang lấy dữ liệu ngày tháng từ hàm Date mà. Muốn kết quả tháy đổi khi sửa ở textbox ngày đăng ký thì chèn thêm code
Mã:
Private Sub txt_ngaydangky_Change()
 Me.txt_ngaynhanquyetdinh.Value = Format(Application.WorksheetFunction.WorkDay(CDate(Me.txt_ngaydangky.Value), 20, holidayList), "dd/mm/yyyy")
End Sub
 
Upvote 0
Bạn kiểm tra lại cách bạn sửa textbox ngày đăng ký nhé. Mình chạy code vẫn ra đúng kết quả nhé.
 

File đính kèm

  • 1705551471172.png
    1705551471172.png
    59.4 KB · Đọc: 9
Upvote 0
Web KT

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

Back
Top Bottom