VBA SendKeys

VBA SendKeys

Phương thức VBA SendKeys được sử dụng để gửi các tổ hợp phím đến ứng dụng đang hoạt động:

1 Application.SendKeys ("s")

Đoạn mã trên sẽ bắt chước cách nhấn phím “s” trên bàn phím.

Phương thức SendKeys nhận hai đối số:

  • Phím - (Các) phím bạn muốn gửi đến ứng dụng dưới dạng văn bản.
  • Đợi đã (Không bắt buộc)- Giá trị này có thể là True hoặc False. Nếu Đúng, thì Excel sẽ đợi các khóa được xử lý trước rồi mới chạy dòng mã tiếp theo. Nếu Sai, thì Excel tiếp tục chạy quy trình mà không cần đợi xử lý khóa.

SendKeys thường được sử dụng khi tương tác với các ứng dụng khác vì đây là cách nhanh chóng và dễ dàng để hoàn thành nhiệm vụ. Ví dụ: bạn có thể sử dụng SendKeys khi tự động hóa Internet Explorer.

Tuy nhiên, bạn nên cực kỳ cẩn thận khi sử dụng Phương thức SendKeys vì nó có thể có kết quả không mong muốn. Chúng tôi khuyên bạn chỉ nên sử dụng SendKeys như một phương sách cuối cùng và / hoặc khi sai sót có thể chấp nhận được (hoặc có thể dễ dàng phát hiện).

Ví dụ về VBA SendKeys

Mỗi khóa về mặt chữ cái được thể hiện bằng ký tự của chúng, ví dụ a là “a”.
Nếu bạn muốn sử dụng các phím kết hợp với Ctrl, Shift hoặc Alt thì bạn phải đặt trước mã phím như sau:

Chìa khóa Mã số
Điều khiển ^
Sự thay đổi +
Alt %

Mã sau sử dụng Phương pháp SendKeys để lưu sổ làm việc:

12345 Sub usingSendKeys ()Application.SendKeys ("s")Kết thúc Sub

Như chúng tôi đã đề cập trước đây, bạn cần phải cực kỳ cẩn thận khi sử dụng SendKeys. Đoạn mã sau chỉ định thời gian chờ là 10 giây trước khi văn bản được nhập / gửi tới Notepad. Bằng cách chờ 10 giây, bạn cho phép Notepad có cơ hội mở đúng cách, giảm khả năng xảy ra lỗi.

Lưu ý: Mã này sử dụng Phương thức Application.Wait.

1234567 Sub usingSendKeysWithWait ()Gọi Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Gọi SendKeys ("Đây là một số văn bản", Đúng)Kết thúc Sub

Kết quả sau 10 giây chờ đợi là:

SendKeys có thể là một cách cực kỳ nhanh chóng và dễ dàng để hoàn thành nhiệm vụ. Tuy nhiên, rủi ro sai sót là tương đối cao. Chỉ sử dụng SendKeys khi rủi ro đó có thể chấp nhận được!

wave wave wave wave wave