Sendkeys不会在宏的中间运行

时间:2014-10-10 17:28:59

标签: excel vba sendkeys

我正在尝试使用VBA自动从Hyperion中提取数据(我是VBA的新手)。我必须在Sheet 1上选择一个单元格范围,"按" Alt,X,S,R允许它拉取数据,然后转到下一张纸并重复。我遇到的问题是宏运行选项卡并根据需要突出显示单元格,但sendkeys(所有五个实例)在完整宏的末尾而不是在每个步骤之后运行。任何帮助,将不胜感激。宏1-5与不同的工作表名称完全相同。

我目前的代码:

Sub RunAllMacros()
Macro1
Macro2
Macro3
Macro4
Macro5
End Sub

Sub Macro1()
    Sheets("Sheet 1").Select
    Range("C5:H15").Select
    Range("H15").Activate
    Selection.ClearContents
    Range("A1:H15").Select
    Range("H15").Activate
    SendKeys ("%"), True
    SendKeys ("x"), True
    SendKeys ("s"), True
    SendKeys ("r"), True
    Application.Wait (Now + #12:00:01 AM#)

End Sub

1 个答案:

答案 0 :(得分:0)

尝试此修改。

Dim dTILL as double
SendKeys ("%(xsr)"), True
dTill = Now + TimeSerial(0,0,2)
Do While dTILL>Now: DoEvents: Loop

这应该让消息泵能够让外部进程赶上来。