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

时间:2012-10-08 14:43:21

标签: vba excel-vba excel

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

有三个预定例程: 第一个是图表数据的快照,第二个是图表的展示,第三个是第二个,从第二个开始,通过图表,显示它们一段短暂的时间

我的主要问题是跟踪例程的最后执行情况,因为每个例程都使用Application.OnTime

安排自己

所以我有两个问题:

一:有没有办法在Excel中查看来自Application.OnTime的预定例程?

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

1 个答案:

答案 0 :(得分:1)

我无法得到预定的内容。当我调试使用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是宏将运行的全局字符串常量
  • bSchedule记录我是在安排还是取消安排。

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