gpt4 book ai didi

vba - DoEvents、等待和编辑

转载 作者:行者123 更新时间:2023-12-01 20:04:40 26 4
gpt4 key购买 nike

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

Application.Wait (Now + TimeValue("4:00:00"))

这实际上是将宏暂停了四个小时,从凌晨 3 点(当它完成运行代码时)到早上 7 点(当它应该恢复时)。该代码本质上是无限循环的。

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

DoEvents

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

任何见解将不胜感激。谢谢!

编辑:

还有一个后续问题。我创建这个宏来引用实际的宏“Production_Board”。我希望这个宏一直运行并尽可能频繁地刷新。通过使用 goto startagain,由于“准时”延迟间隔,它会在宏启动之前尝试再次启动宏。

如何让子 RunMacro 在宏“Production_Board”完成后再次启动?

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

最佳答案

不要使用等待,而是尝试OnTime。为了进行演示,请将其粘贴到普通模块中并运行Test。事件工作表的范围 A1 将每五秒增加一次,您将能够在其间工作。如果五秒过去后您处于编辑模式,它也适用:

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

请注意,子函数末尾的 OnTime 语句会再次递归调用子函数。 Here's更多信息。

关于vba - DoEvents、等待和编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com