Tại sao Form này không tự đóng?

Liên hệ QC

vietcong1980

Thành viên chính thức
Tham gia
24/4/09
Bài viết
75
Được thích
11
Form trong file này thiết kế để nó tự động đóng lại sau 1 số giây. Nhưng không thấy nó tự đóng lại. Mình đã thử chèn dòng code On Error Resume Next vào tất cả các thủ tục mà không thấy có tác dụng. Code trong đó cũng khó có thể sai vì code rất ngắn và rút kinh nghiệm lần trước mình đã kiểm tra lại lỗi chính tả dù không thấy nó báo lỗi. Các bạn xem giúp mình nhé!
http://www.mediafire.com/?4loea597f01u4jb
 
Form trong file này thiết kế để nó tự động đóng lại sau 1 số giây. Nhưng không thấy nó tự đóng lại. Mình đã thử chèn dòng code On Error Resume Next vào tất cả các thủ tục mà không thấy có tác dụng. Code trong đó cũng khó có thể sai vì code rất ngắn và rút kinh nghiệm lần trước mình đã kiểm tra lại lỗi chính tả dù không thấy nó báo lỗi. Các bạn xem giúp mình nhé!
http://www.mediafire.com/?4loea597f01u4jb
Code phải như này chứ Anh nhỉ?
PHP:
Private Sub UserForm_Initialize()
Application.OnTime Now + TimeValue("00:00:02"), "KillTheForm"
End Sub
Câu lệnh này On Error Resume Next không được dùng bừa đâu nhé ANh. Nó sẽ bỏ qua hết tất cả các lỗi đó.
hoặc :
PHP:
Private Sub UserForm_Activate()
    Application.OnTime Now + TimeValue("00:00:02"), "KillTheForm"
End Sub
Với laị trong vba nó có hỗ trợ một số câu lệnh luôn cơ mà?
Trong này Anh chú ý thêm cái em viết nhé: Khi nào thì dùng :Activate và khi nào dùng Initialize cái này quan trọng cho sau này đấy.
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như bạn viết sai chính tả. Bạn copy cái code KillTheForm sau paste vào đối số là có hiệu lực.
Mách nhau chút mẹo kiểm tra, tớ chép luôn cái đối số của code (Bỏ dấu ngoặc kép) rồi thay cho dòng Me.Hide trong Sub cmdClose_Click. Sau đó mở form và nhấn nút. Lỗi xuất hiện không tìm thấy Sub. Vạy là ta biết nguyên do ngay.
 
Lần chỉnh sửa cuối:
Upvote 0
Code phải như này chứ Anh nhỉ?
PHP:
Private Sub UserForm_Initialize()
Application.OnTime Now + TimeValue("00:00:02"), "killtheform"
End Sub
Câu lệnh này On Error Resume Next không được dùng bừa đâu nhé ANh. Nó sẽ bỏ qua hết tất cả các lỗi đó.
hoặc :
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:02"), "KillTheForm"
End Sub
Đúng là thay code này của em vào thì có tác dụng nhưng code của anh là anh làm theo sách đấy,không sai theo sách 1 chút nào. Hay là sách của bác Hướng lại viết sai?
 
Upvote 0
Đúng là thay code này của em vào thì có tác dụng nhưng code của anh là anh làm theo sách đấy,không sai theo sách 1 chút nào. Hay là sách của bác Hướng lại viết sai?
Sai là cái tên sub của Anh ấy sai tên này này "KillTheForm". Em đang viết tiếp.
Không biết em nói thế này Anh có giận không nhưng sao ta không bắt đầu từ những cái sub đơn giản trước nhờ? Ví dụ tính một tổng, một cấp số........... sau đó mới tiếp cận đến giao diện?
 
Lần chỉnh sửa cuối:
Upvote 0
Đoạn code của bạn gọi sai tên thủ tục thì làm sao nó chạy được! Xem lại cái killthefrom, phải là KilltheForm chứ!
 
Upvote 0
Thực ra, đây là đoạn chương trình có tính chất giới thiệu giống như flashform mà thôi. Dùng sự kiện UserForm_Activate hay UserForm_Initialize nó chẳng khác gì nhau về code nhưng nó khác nhau về mục đích

1/ UserForm_Initialize : Chỉ có tác dụng 1 lần khi mở form
2/UserForm_Activate : Sau khi làm các tác vụ khác quay lại Form lại nhận được thông báo. Mỗi khi form active (nhận Focus ) đều có tác dụng. Nó thuận lợi cho việc thông báo khi sử dụng form như hệ thống phím tắt, các quy tắc bắt buộc tuân thủ v.v...
 
Upvote 0
Web KT
Back
Top Bottom