Public Runtime
Sub a123()
If [U1] <> 1 Then
On Error Resume Next
Application.OnTime EarliestTime:=TimeValue(Runtime), _
Procedure:="a123", Schedule:=False
Exit Sub
On Error GoTo 0
End If
zzzzz
If Range("V14") = 1 Then mytime = "00:01:00"
If Range("V14") = 2 Then mytime = "00:02:00"
If Range("V14") = 3 Then mytime = "00:00:30"
If Range("V14") = 4 Then mytime = "00:00:15"
'--------------------------------------
Runtime = Now + TimeValue(mytime)
Range("I15").Value = Format(Runtime, "hh:mm:ss")
'------------------------------------------------------
Application.OnTime Runtime, "Sheet6.a123"
End Sub
謝謝指導,vb 正學習當中,多日無人回應,小弟想出的簡單的方法,提供參考
Public Runtime
Sub a123()
If Range("U1").Value <> 1 Then
On Error Resume Next
Application.OnTime EarliestTime:=TimeValue(Runtime), _
Procedure:="a123", Schedule:=False
Cells(15, 9).Interior.ColorIndex = 2 '退出色彩還原
Range("u1").Value = 1
Range("z1").Value = 1
Exit Sub
On Error GoTo 0
End If
zzzzz
If Range("V14") = 1 Then mytime = "00:01:00"
If Range("V14") = 2 Then mytime = "00:02:00"
If Range("V14") = 3 Then mytime = "00:00:30"
If Range("V14") = 4 Then mytime = "00:00:15"
If Range("z1").Value = 1 Then
Cells(15, 9).Interior.ColorIndex = 8 '執行中變色
Runtime = Now + TimeValue(mytime)
Range("I15").Value = Format(Runtime, "hh:mm:ss")
Range("z1").Value = 2
Else
Runtime = Range("I15").Value + TimeValue(mytime)
Range("I15").Value = Format(Runtime, "hh:mm:ss")
End If
Application.OnTime Runtime, "Sheet6.a123"
End Sub作者: t8899 時間: 2013-10-13 10:21
回復 t8899
試試看
GBKEE 發表於 2013-10-12 16:25
On Error Resume Next =========>這句應可拿掉??
u1 不等於1 時並不等於"錯誤"??作者: luhpro 時間: 2013-10-14 23:06
本帖最後由 luhpro 於 2013-10-14 23:14 編輯
On Error Resume Next =========>這句應可拿掉??
u1 不等於1 時並不等於"錯誤"??
t8899 發表於 2013-10-13 10:21
On Error 像個切換開關,
意指之後遇到錯誤時該如何處理.
On Error Resume Next 是告訴系統 : 之後遇到錯誤時請忽略該錯誤, 從發生錯誤的下一行繼續執行下去.
所以它的作用範圍是直到下一次執行到 On Error ... 指令而變更了錯誤處理方式 或是 將檔案關閉 為止,
故而並不適合單純因為 u1 不等於1 時並不等於"錯誤" 這個因素而拿掉.
另你的程式中 On Error GoTo 0 因為是在 Exit Sub 之後, 所以永遠不會被執行到,
若希望它發揮作用應改放到 Exit Sub 之前.