首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DoEvents、等待和编辑

DoEvents、等待和编辑
EN

Stack Overflow用户
提问于 2013-04-18 11:27:19
回答 2查看 28K关注 0票数 5

我有一组代码,其中包含:

代码语言:javascript
复制
Application.Wait (Now + TimeValue("4:00:00"))

这实际上是暂停宏四个小时的窗口,从凌晨3点(当它完成运行代码时)到上午7点(此时它应该继续运行)。从本质上讲,代码是在一个无限的循环中。

我希望用户能够在这段时间内控制编辑某些单元格。我试过了

代码语言:javascript
复制
DoEvents

但是还没有找到保持宏运行的方法,但是在宏除了等待之外什么也不做的时候,仍然向用户提供控制。

任何洞察力都将不胜感激。谢谢!

编辑:

还有一个后续问题。我创建这个宏是为了引用实际的宏"Production_Board“。我希望此宏始终运行并尽可能频繁地刷新。通过使用goto started,它会尝试在宏启动之前再次启动宏,因为"ontime“延迟间隔。

我怎样才能在宏"Production_Board“结束的那一秒让子RunMacro重新启动呢?

代码语言:javascript
复制
Sub RunMacro
startagain:
Dim hour As Integer
Dim OT As String
hour = 0
OT = "Empty"
hour = Sheets("Calculations").Range("DR1").Value
OT = Sheets("Black").Range("D4").Value
If OT = "Y" Then
    If hour = 3 Or hour = 4 Then
    Application.OnTime TimeValue("05:00:00"), "Aespire_Production_Board"
    Else
    Application.OnTime Now + TimeValue("00:00:30"), "Aespire_Production_Board"
    End If
Else
    If hour = 3 Or hour = 4 Or hour = 5 Or hour = 6 Then
    Application.OnTime TimeValue("07:00:00"), "Aespire_Production_Board"
    Else
    Application.OnTime Now + TimeValue("00:00:30"), "Aespire_Production_Board"
    End If
DoEvents
GoTo startagain
EN

回答 2

Stack Overflow用户

发布于 2013-04-18 12:07:40

请尝试OnTime,而不是Wait。为了进行演示,将此代码粘贴到一个普通模块中,然后运行Test。活动工作表的Range A1将每五秒递增一次,您可以在两者之间工作。如果您在5秒后处于编辑模式,则也可以执行此操作:

代码语言:javascript
复制
Sub test()
    test2
End Sub

Sub test2()
    ActiveSheet.Cells(1, 1).Value = ActiveSheet.Cells(1, 1).Value + 1
    Application.OnTime Now + TimeValue("00:00:5"), "test2"
End Sub

请注意,sub结尾处的OnTime语句再次递归地调用sub。Here's提供更多信息。

票数 9
EN

Stack Overflow用户

发布于 2013-04-18 23:19:25

代码语言:javascript
复制
Sub mySub()
    Do
        If Time() >= #3:00:00 AM# And Time() <= #7:00:00 AM# Then
            Aespire_Production_Board
        End If
    DoEvents
    Loop
End Sub

一旦启动mySub(),它将无限期地运行。在凌晨3点到7点之间,它将在每个循环上运行Aespire_Production_Board。它还允许用户进行交互。可以使用CTRL-Break将代码置于中断模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16073972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档