Sao khi dùng Sendkeys, bàn phím gõ số (bên phải) bị "đơ" ??

  • Thread starter Thread starter adboy
  • Ngày gửi Ngày gửi
Liên hệ QC

adboy

Thành viên mới
Tham gia
29/11/06
Bài viết
27
Được thích
1
Mình đang viết đoạn code sau (gắn vào 1 nút Command trên Excel ):

Private Sub CommandButton1_Click()
Range("a1").Copy
AppActivate ("Unixserver01") 'Đây là cửa sổ nhập liệu của công ty mình
SendKeys "^(v)", True
End Sub

Mục đích của đoạn code trên: Copy nội dung của ô A1 trong Excel, mở cửa sổ "Unixserver01" là cửa sổ nhập liệu của công ty mình lên, và Paste (Ctr-v) nội dung vừa copy sang. Đoạn code áp dụng thử trên Word, notepad...rất tốt, thế nhưng đối với cửa sổ nhập liệu của công ty mình, khi paste xong, phần bàn phím gõ số (chỗ Numlock) bị "đơ', hết sử dụng được. Tắt cửa sổ nhập liệu này, khởi động lại thì lại gõ được, nhưng cho chạy đoạn code trên thì lại "đơ" tiếp.

Bạn nào biết về hiện tượng này và cách khắc phục, chỉ mình với....!!
 
Sao bạn không thay dòng lệnh SendKeys "^(v)", True bằng ActiveSheet.Paste ?
TDN
 
Upvote 0
Bạn ơi, cửa sổ nhập liệu của công ty mình không phải là Excel, nó là 1 chương trình riêng biệt được cài trên Windows nên không thể dùng Activesheet được.
 
Upvote 0
Bạn ơi, cửa sổ nhập liệu của công ty mình không phải là Excel, nó là 1 chương trình riêng biệt được cài trên Windows nên không thể dùng Activesheet được.
Ồ, thì ra vậy. Trong VBA có lệnh lấy những gì lưu trong Clipboard xuống, mình có gặp qua nhưng lâu quá không nhớ nổi, sorri... Bạn nào biết nhắc hộ với, chứ ai lại dùng Sendkeys, thanks

TDN
 
Upvote 0
SendKeys "%(NUMLOCK)" dùng để bật tắt bàn phím bên phải đó. Bạn thử xem
 
Upvote 0
Vấn đề không phải là "numlock" bị tắt, nó vẫn được mở, nhưng bàn phím số không gõ được mới lạ....??? Nhức đầu quá
 
Upvote 0
Vấn đề không phải là "numlock" bị tắt, nó vẫn được mở, nhưng bàn phím số không gõ được mới lạ....??? Nhức đầu quá
Bạn nói bàn phím số bị đơ là đơ trong Excel hay đơ ở đâu? Chứ tôi thử code trên paste vào notepad thì bình thường
Nếu như bạn ko dùng code mà thao tác toàn bộ quá trình bằng tay thì thế nào?
ANH TUẤN
 
Upvote 0
Vấn đề không phải là "numlock" bị tắt, nó vẫn được mở, nhưng bàn phím số không gõ được mới lạ....??? Nhức đầu quá
bạn không gõ đc khi chương trình đang chạy hay chạy xong mà vẫn không gõ đc, nếu chạy xong mà không gõ đc, bạn thử bật tắt numlock xem nếu vẫn không gõ đc thì đổi bàn phím khác thử xem còn hiện tượng đó không. Vì khi mình sendkeys thì thường nó tắt luôn bàn phím (chắc do send left right) nhưng chạy xong bật lại thì gõ số vô tư
 
Upvote 0
Bạn Anh Tuấn nói đúng, khi áp dụng đoạn mã code này để paste từ Excel sang Notepad, Word...bàn phím số vẫn sử dụng bình thường, nhưng khi paste sang chương trình nhập liệu của C.ty mình thì phần bàn phím gõ số bị đơ (mặc dù nút Numlock vẫn sáng đèn - và mặc dù mình đã bật , tắt numlock ). Lúc này, chức năng gõ số bị mất mà nó đang là chức năng Left, Right, Down, Up ( mặc dù nút numlock vẩn sáng đèn ???). Khi thoát ra khỏi chương trình nhập liệu của công ty, và khở động lại chương trình thì mọi thứ bình thường như cũ . Sao kỳ vậy nhĩ ???
 
Upvote 0
Thật ra, không phải lỗi của "Numlock" đâu. Vì khi gán số với SendKeys nó chỉ có tác dụng hàng số trên hàng phím chữ thôi. Nếu muốn dùng lệnh SendKeys với phím số bên Numpad thì các bạn phải dùng các mã sau :
0 (96)
1 (97)
2 (98)
3 (99)
4 (100)
5 (101)
6 (102)
7 (103)
8 (104)
9 (105)

+ (107)
- (109)
* (106)
[FONT=&quot]. (110)
[/FONT]
Ví dụ :
Application.SendKeys "{96}"

* Nhưng Sendkeys thì cần gì phân biệt số bên phím chữ với số bên Numpad ta ???
Mình nghĩ với Onkey thì mới cần phân biệt chứ !

TND
 
Upvote 0
Thanks các bạn, để mình thử xem...nhưng dùng Application.Sendkeys thì làm cách nào mình muốn sendkeys đến đúng cửa sổ mình cần, ví dụ "notepad" chẳng hạn.... cũng phải sử dụng Appactivate rồi mới đến Application.Sendkeys àh ?? sao mình không dùng được Application.Sendkeys nhỉ ??
 
Upvote 0
Web KT

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

Back
Top Bottom