2012-10-08 43 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

我試過你的解決方案(有一些修改),工作得很好。謝謝! –

相關問題