Kính chào các anh chị, chúc các anh chị sức khỏe.
Em là người mới học về Excel VBA, chủ yếu là thông qua các bài mẫu để chỉnh sửa và sử dụng chứ cũng chưa tự viết được hàm hoàn chỉnh.
Hôm nay, em có viết 1 hàm tự tạo bằng VBA để:
"Xác định 1 ngày kiểm tra trong tương lai theo chu kỳ là 3 tháng với điều kiện là ngày trong tương lai sẽ lớn hơn 1 ngày được xác định (ví dụ ngày điều kiện là 15/05/2023)"
Ví dụ:
Ngày tại ô B1 là 21/06/2018, chu kỳ là 3 tháng phải đánh giá lại 1 lần thì theo xác định tay thì nó sẽ là ngày 21/06/2023.
Khi em dùng vòng lặp để tạo công thức thì không hiểu vì sao kết quả lại ra con số khác. (chỉ có 2,3 dòng lệnh nhưng em ko biết vì sao ra kết quả sai, em cũng không hiểu được cách VBA vận hành)
Mong các anh chị giúp đỡ, em có Upfile đính kèm.
Cảm ơn các anh chị rất nhiều ạ.
Em là người mới học về Excel VBA, chủ yếu là thông qua các bài mẫu để chỉnh sửa và sử dụng chứ cũng chưa tự viết được hàm hoàn chỉnh.
Hôm nay, em có viết 1 hàm tự tạo bằng VBA để:
"Xác định 1 ngày kiểm tra trong tương lai theo chu kỳ là 3 tháng với điều kiện là ngày trong tương lai sẽ lớn hơn 1 ngày được xác định (ví dụ ngày điều kiện là 15/05/2023)"
Ví dụ:
Ngày tại ô B1 là 21/06/2018, chu kỳ là 3 tháng phải đánh giá lại 1 lần thì theo xác định tay thì nó sẽ là ngày 21/06/2023.
Khi em dùng vòng lặp để tạo công thức thì không hiểu vì sao kết quả lại ra con số khác. (chỉ có 2,3 dòng lệnh nhưng em ko biết vì sao ra kết quả sai, em cũng không hiểu được cách VBA vận hành)
Mong các anh chị giúp đỡ, em có Upfile đính kèm.
Cảm ơn các anh chị rất nhiều ạ.
Mã:
Function ngay_tdls(ngay As Date)
Dim i As Integer
Dim ngay_bd As Date
i = 0
ngay_tdls = ngay
ngay_bd = DateSerial(Month:=5, Day:=15, Year:=2023)
Do While ngay_tdls < ngay_bd
i = i + 3
ngay_tdls = DateAdd("m", i, ngay_tdls)
Loop
End Function
File đính kèm
Lần chỉnh sửa cuối: