Vba 如何通过Excel工作表安排基于时间的循环?
我正在Excel中创建一个仪表板,它连接到数据库并每15分钟更新一次。我已经使用下面的代码为此创建了一个调度程序。然而,我也希望在15分钟的等待时间内,仪表板在所有工作表中循环显示每一张工作表1分钟。如何在代码中构建第二级计划 my_过程是连接到数据库并更新工作簿中数据的宏Vba 如何通过Excel工作表安排基于时间的循环?,vba,excel,Vba,Excel,我正在Excel中创建一个仪表板,它连接到数据库并每15分钟更新一次。我已经使用下面的代码为此创建了一个调度程序。然而,我也希望在15分钟的等待时间内,仪表板在所有工作表中循环显示每一张工作表1分钟。如何在代码中构建第二级计划 my_过程是连接到数据库并更新工作簿中数据的宏 Public Sub scheduler_1() Call my_procedure Call scheduler_2 End Sub Public Sub scheduler_2() RunWhe
Public Sub scheduler_1()
Call my_procedure
Call scheduler_2
End Sub
Public Sub scheduler_2()
RunWhen = Now + TimeValue("00:15:00")
Application.OnTime RunWhen, "scheduler_1"
End Sub
看来我很快就解决了。我在scheduler_2宏中添加了一个循环
Public Sub scheduler_2()
RunWhen = Now + TimeValue("00:15:00")
Application.OnTime RunWhen, "scheduler_1"
Application.ScreenUpdating = True
Do While Now < RunWhen
Sheet5.Activate
Call custom_wait(5)
Sheet3.Activate
Call custom_wait(5)
Loop
End Sub
你可以每分钟运行一个调度程序来循环浏览所有的工作表,并在
调度程序2
中使用静态日期
变量计算15分钟后的时间,然后运行我的程序
我看不出你是如何循环浏览所有工作表的,你只有两张工作表。这只是一个例子,我现在可以根据仪表板的受众使用一些和所有的工作表。我主要关心的不是循环本身,而是在等待下一次永久宏调用时循环。
Public Sub custom_wait(ByVal i As Integer)
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + i
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
End Sub