2012-10-08 123 views
1

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

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

我的主要问题是跟踪程序的最后执行的,因为他们中的每一个与Application.OnTime

这样的安排本身我有两个问题:

一:是否有从看到预定的程序在Excel中?

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

回答

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,你需要一个数组或集合来跟踪。我只是一个预定运行或不运行的宏,所以我的全局变量/常量做到了这一点。

+0

我试过你的解决方案(有一些修改),工作得很好。谢谢! –

相关问题