Xin hỏi dùng SendKeys để đóng 1 form Modal

Liên hệ QC

chautrungphan

Thành viên mới
Tham gia
3/1/08
Bài viết
8
Được thích
0
Xin hỏi :khi tôi thi hành 1 chương trình excel,nó có hiện ra 1 form dạng Modal.Tôi đã đóng nó lại bằng Sendkeys nhưng nó không Repaint được(tuy là close được).Bạn nào có cách làm cho form này "tươi lên cho đẹp" trước khi đóng nó lại
'Đoạn code như sau:

'Chú ý form Modal này do 1 thi hàng 1 chương trình khác tạo ra

'Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub SendkeyForForm()
SendKeys "{TAB 4}" '4 lần "tab" tới nút Close
SendKeys "{ENTER}"
'SendKeys "%{F4}" 'hoặc dùng lệnh này
'Sleep (3000)
UserForm1.Show
'Sleep (5000)
'UserForm1.Repaint
OpenForms = DoEvents
'Sleep (3000)
End Sub

'Trên excel thêm nút lệnh SendkeyForFormModal để thi hành

Private Sub CommandButton1_Click()
'UserForm1.Show
Call SendkeyForForm
End Sub

''Đóng được form modal nhưng form này không kịp hiện ra cho đẹp+-+-+-+
 

File đính kèm

Xin hỏi :khi tôi thi hành 1 chương trình excel,nó có hiện ra 1 form dạng Modal.Tôi đã đóng nó lại bằng Sendkeys nhưng nó không Repaint được(tuy là close được).Bạn nào có cách làm cho form này "tươi lên cho đẹp" trước khi đóng nó lại
'Đoạn code như sau:

'Chú ý form Modal này do 1 thi hàng 1 chương trình khác tạo ra

'Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub SendkeyForForm()
SendKeys "{TAB 4}" '4 lần "tab" tới nút Close
SendKeys "{ENTER}"
'SendKeys "%{F4}" 'hoặc dùng lệnh này
'Sleep (3000)
UserForm1.Show
'Sleep (5000)
'UserForm1.Repaint
OpenForms = DoEvents
'Sleep (3000)
End Sub

'Trên excel thêm nút lệnh SendkeyForFormModal để thi hành

Private Sub CommandButton1_Click()
'UserForm1.Show
Call SendkeyForForm
End Sub

''Đóng được form modal nhưng form này không kịp hiện ra cho đẹp+-+-+-+
Xin hỏi: Mục đích cuối cùng của bạn là muốn làm cái gì vậy?
 
Upvote 0
Upvote 0
Không biết mục đích chính là gì, chứ theo như diễn giải và theo file thí dụ đính kèm, nếu muốn không phải đóng form cho mệt thì đừng mở form. Vì form không có giá trị thông báo, lại chỉ mở lên vài giây rồi phải đóng lại, mệt thật.
 
Upvote 0
Mình không hiểu nổi sự lòng vòng của bạn nhằm mục đích gì:
1/Bạn nhấn được nút Senkey mà lại ngại nhấn Close?
2/Bạn Sendkey tới 4 cái Tab và 1 cái Enter. Vậy tại sao bạn không gọi luôn Cmd_Close_click(). Nếu trong phạm vi có thể dùng VB thì ta dùng lệnh có hiệu quả hơn, trừ phi VB không hỗ trợ. Người ta dùng Sendkey khi lệnh VBA không can thiệp trược tiếp được. Ví dụ: từ Form gọi mở Máy tính tay của Windows, nhập vào số 15, nhấn fím + rồi copy kết quả, đóng máy tính trở về Form. Lúc này, VBA không can thiệp được vào máy tính tay được mà phải dùng lệnh bàn phím để điều khiển. Mình không phải dân IT nên có thể chưa thấu đáo chăng?
3/Định giờ "giã từ" cho Form hay gài mìn cho nó chết cũng khá nhiều đất dụng võ. Ví dụ 1 cái Form Flash đơn giản như sau

Mình có cảm giác bạn hoc VB nay tìm hiểu VBA, tuy thuyền trưởng lái tàu sông biển giỏi nhưng lái bè vượt thác cũng không hẳn chắc ăn phải không?
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom