Cara membuat beberapa perintah operasi linier makro sendkeys

0
Range ("D5").Select
ActiveCell.Resize(1, 25).Select
SendKeys ("%y1"), True 'Alt+Y1
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
SendKeys ("~"), True 'Enter, initiates the merge add-in function

Range ("D6").Select
ActiveCell.Resize(1, 25).Select
SendKeys ("%y1"), True 'Alt+Y1
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
SendKeys ("~"), True 'Enter, initiates the merge add-in function

Lanjutan untuk memilih setiap Sel di Kolom D hingga D40 ...

Setiap kali saya menjalankan kode SendKeys, VBA hanya menjalankan perintah terakhir dalam urutan. Saya mencoba menggunakan menunggu atau tidur, tetapi makro hanya menunda kerangka waktu yang tercantum dan kemudian hanya menjalankan set operasi terakhir. Saya membutuhkan ini untuk berjalan secara linear (dalam urutan operasi yang diinginkan).

Bagaimana cara memastikan set penekanan tombol terjadi secara linear dan berurutan?

Alex Linderman
sumber

Jawaban:

1

Menggunakan DoEvents

Range ("D5").Select
ActiveCell.Resize(1, 25).Select
DoEvents
SendKeys ("%y1"), True 'Alt+Y1
DoEvents
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
DoEvents
SendKeys ("~"), True 'Enter, initiates the merge add-in function
DoEvents

Range ("D6").Select
ActiveCell.Resize(1, 25).Select
DoEvents
SendKeys ("%y1"), True 'Alt+Y1
DoEvents
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
DoEvents
SendKeys ("~"), True 'Enter, 
DoEvents
Siswa Gary
sumber
Jika saya hanya menambahkan DoEvents di bagian bawah setiap set SendKeys itu berfungsi lebih baik karena sistem operasi tidak harus berhenti setelah setiap perintah. Ini memungkinkan saya untuk menggunakan pintasan keystroke Excel untuk memulai Add-in Excel Pihak Ketiga. Terima kasih untuk bantuannya! Ini menyelesaikan masalah saya.
Alex Linderman