我正在 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,则需要一个数组或集合来跟踪。 我的只是一个宏,要么计划运行,要么不运行,所以我的全局变量/常量就起作用了。