วิธีสร้าง 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

ทำการเลือกแต่ละเซลล์ในคอลัมน์ D ต่อไปจนถึง D40 ...

ทุกครั้งที่ฉันเรียกใช้รหัส SendKeys VBA จะเริ่มต้นคำสั่งสุดท้ายตามลำดับเท่านั้น ฉันลองใช้การรอหรือการนอนหลับ แต่มาโครเพิ่งหน่วงเวลากรอบเวลาที่ระบุไว้จากนั้นเรียกใช้ชุดปฏิบัติการล่าสุดเท่านั้น ฉันต้องการสิ่งนี้เพื่อทำงานในแบบเชิงเส้น (ตามลำดับการปฏิบัติการที่ต้องการ)

ฉันจะแน่ใจได้อย่างไรว่าชุดการกดแป้นพิมพ์เกิดขึ้นเป็นเส้นตรงและเรียงตามลำดับ

คำตอบ:


1

ใช้ 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

ถ้าฉันเพียงเพิ่ม DoEvents ที่ด้านล่างของแต่ละชุดของ SendKeys จะทำงานได้ดีขึ้นเพราะระบบปฏิบัติการไม่จำเป็นต้องหยุดหลังจากแต่ละคำสั่ง นี่ทำให้ฉันสามารถใช้ช็อตคัตคีย์ลัดของ Excel เพื่อเริ่มต้น Add-in ของบุคคลที่สาม ขอขอบคุณสำหรับความช่วยเหลือของคุณ! นี่เป็นการแก้ไขปัญหาของฉัน
Alex Linderman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.