Lỗi tính toán biến Date

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

taphets

Thành viên mới
Tham gia
9/4/16
Bài viết
34
Được thích
0
Chào anh chị,

Em có 1 file data như đính kèm. Em cần sau khi nhập ngày tháng (From...to...) vào UserForm dưới đây sẽ tạo 1 file .txt với data gồm Số hiệu (cột C), Gate in (cột G), Loại cont (cột F)

1679475855437.png

Nhưng khi viết VBA đến đoạn so sánh ngày tháng thì báo lỗi Type mis-match.
1679476086520.png

Nhờ các anh chị em và giúp em sửa lỗi trên với ạ.
Đa tạ các anh chị.
 

File đính kèm

  • HA VO BEACON - 2023.xlsm
    88.7 KB · Đọc: 5
1. Ngay tại thời điểm lỗi xảy ra, bạn có biết i bằng bao nhiêu không? rồi Range("G" & i) đang chứa giá trị gì? Lấy DateValue của giá trị đó sẽ được cái gì?

2. Giả sử bạn sửa được câu lệnh vàng, sẽ xảy ra lỗi 2. Tất cả Textbox trên form đều chứa giá trị Text dù cho bạn gõ ngày tháng hay số tiền. Vậy lấy DateFrom sẽ là text và không so sánh được với số.

3. Giả sử bạn sửa được lỗi 2, bạn cho xuất hiện Msgbox làm gì cả trăm lần?
 
Upvote 0
DateValue và khúc này là hỏng bét hết rồi.

Tách chuỗi thành 3 thành phần rồi cho vào hàm DateSerial() mới được.

1679477601749.png
 
Upvote 0
1. Ngay tại thời điểm lỗi xảy ra, bạn có biết i bằng bao nhiêu không? rồi Range("G" & i) đang chứa giá trị gì? Lấy DateValue của giá trị đó sẽ được cái gì?

2. Giả sử bạn sửa được câu lệnh vàng, sẽ xảy ra lỗi 2. Tất cả Textbox trên form đều chứa giá trị Text dù cho bạn gõ ngày tháng hay số tiền. Vậy lấy DateFrom sẽ là text và không so sánh được với số.

3. Giả sử bạn sửa được lỗi 2, bạn cho xuất hiện Msgbox làm gì cả trăm lần?
1. Lỗi xảy ra ngay khi e chạy nên lúc đó i chưa có. Range("G"&i) là ngày tháng năm
2. Trong trường hợp này làm thế nào để so sánh được với nhau a chỉ em với nhé.
3. E cho nhiều Msgbox là để tạm kiểm tra xem các ô ngày tháng năm VBA chạy ra có chính xác k thôi. Sau này e sẽ xóa
Bài đã được tự động gộp:

DateValue và khúc này là hỏng bét hết rồi.

Tách chuỗi thành 3 thành phần rồi cho vào hàm DateSerial() mới được.

View attachment 287894
Cảm ơn anh e làm được rồi
 
Lần chỉnh sửa cuối:
Upvote 0
1. Lỗi xảy ra ngay khi e chạy nên lúc đó i chưa có. Range("G"&i) là ngày tháng năm
Sai. Câu lệnh lỗi nằm trong vòng lặp For. Khởi tạo vòng lặp thì i đã nhận giá trị đầu tiên là 1 nên Range("G" & i) = Range("G1") = tiêu đề bảng.
 
Upvote 0
Web KT

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

Back
Top Bottom