我不知道如何得到预定的内容。当我调试一个使用 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,则需要一个数组或集合来跟踪。我的只是一个计划运行或不运行的宏,所以我的全局变量/常量成功了。