首页 > 解决方案 > Application.SendKeys "({1068})" 不能与 Application.OnTime 一起使用

问题描述

我正在尝试通过 Application.OnTime 按计划获取宏,如下所示(位于 ThisWorkbook 中):

Private Sub Workbook_Open()        
    Application.OnTime TimeValue("15:50:02"), "CopyScreen"                 
End Sub                 

而“CopyScreen”子如下(位于常规模块中):

Sub CopyScreen()

Application.SendKeys "({1068})", True          
DoEvents             
ActiveSheet.Paste             
End Sub               

CopyScreen() 模块在手动提示 (F5) 调用时工作正常,但无论何时通过预定的 Workbook_Open() 子调用它,都会复制黑色屏幕截图。这里有什么想法吗?

标签: excelvbasendkeys

解决方案


我让它与这段代码一起工作:

Sub CopyScreen()

  Dim sht As Worksheet
  Set sht = ActiveSheet
  
  Application.SendKeys "({1068})", True
  DoEvents
  With sht
      .Activate
      .Paste
  End With 'sht

显然,Excel 在等待设定时间进入睡眠状态时会忘记 ActiveSheet。去搞清楚!

高温高压

结束子


推荐阅读