有没有办法在Excel上查看Application.OnTime的预定过程



我正在 Excel 中设计一个类似仪表板的工作簿,并且我创建了一个例程来使用 Excel VBA 中的 Application.OnTime 方法不时自动显示一些图表,但我在调试例程时遇到了一些问题。

有三个计划的例程:第一个对图表的数据进行快照,第二个开始图表的展示,第三个从第二个开始,通过图表,在短时间内显示它们

我的主要问题是跟踪例程的最后一次执行,因为它们中的每一个都用Application.OnTime

所以我有两个问题:

一:有没有办法在Excel中查看Application.OnTime的计划例程?

二:有没有更好的方法来安排使用VBA的重复例程?

我知道没有

办法得到预定的内容。 当我调试一个使用 OnTime 的程序时,我制作了自己的日志,以便我可以看到计划的内容和时间。

Public Function WriteLog(bSchedule As Boolean) As Boolean
    Dim sFile As String, lFile As Long
    Dim sOutput As String
    Dim bReturn As Boolean
    Const sSOURCE As String = "WriteLog()"
    On Error GoTo ErrorHandler
    bReturn = True
    sFile = Environ("USERPROFILE") & gsLOGPATH & gsTIMERLOG
    lFile = FreeFile
    sOutput = bSchedule
    sOutput = sOutput & "," & gdtNextRun
    sOutput = sOutput & "," & gsSCHEDMACRO
    sOutput = sOutput & "," & Format(Now, "mm/dd/yyyy hh:mm:ss")
    Open sFile For Append As lFile
    Print #lFile, sOutput
    Close lFile
ErrorExit:
    On Error Resume Next
    WriteLog = bReturn
    Exit Function
ErrorHandler:
    bReturn = False
    If bCentralErrorHandler(msMODULE, sSOURCE) Then
        Stop
        Resume
    Else
        Resume ErrorExit
    End If
End Function

这使用错误处理系统,因此您必须自行修复它或删除错误处理内容。

  • gdtNextRun 是下一次计划运行的全局日期变量
  • gsSCHEDMACRO 是一个全局字符串常量,宏将为其运行
  • b计划日志,无论我是计划还是取消计划。

如果您有多个 OnTimes,则需要一个数组或集合来跟踪。 我的只是一个宏,要么计划运行,要么不运行,所以我的全局变量/常量就起作用了。

最新更新