如何创建多个 sendkeys 宏线性操作顺序

如何创建多个 sendkeys 宏线性操作顺序
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 仅启动序列中的最后一个命令。我尝试使用 wait 或 sleep,但宏只会延迟列出的时间范围,然后仅运行最后一组操作。我需要以线性方式运行(按所需操作的顺序)。

如何确保一系列击键操作线性且按顺序发生?

答案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

相关内容