返回列表 上一主題 發帖

該如何取消巨集???

回復 7# color790
阿吉版主提供的範例,2007版以後不能使用
2007版本以後請使用此檔案
中斷程序.rar (17.36 KB)
學海無涯_不恥下問

TOP

原來是降,難怪看不到, 謝謝版主的提供 ^^
來研究一下....
初學者color

TOP

修改如下, 但還是失敗, 按下左鍵(vbKeyLeft)可以這樣用嗎?
p = Now + 0.000112
If vbKeyLeft = True Then
w = Timer
        Do
            DoEvents
            If vbKeyLeft = True Then
            z = (Timer - w) / 86400
            p = p + z
            Exit Do
            End If
        Loop
End If
Application.OnTime p, "test3"
初學者color

TOP

本帖最後由 Hsieh 於 2012-2-12 00:42 編輯

回復 5# color790

你的意思不知是否如此?
注意程序名稱不能使用VBA保留字
  1. Public x As Long, S As Double, t As Date, yn As Boolean

  2. Sub start()
  3. Application.OnKey "{RIGHT}", "gomysub"
  4. Application.OnKey "{LEFT}", "STOPS"
  5. Range("r2:t30,d4:d8,g4:g8,k4:k8,n4:n8").ClearContents
  6. End Sub
  7. Sub gomysub()
  8. k = 2: m = 2: n = 2
  9. Do Until Cells(k, 18) = ""
  10. k = k + 1
  11. Loop
  12. Do Until Cells(m, 19) = ""
  13. m = m + 1
  14. Loop
  15. Do Until Cells(n, 20) = ""
  16. n = n + 1
  17. Loop
  18. If x = 0 Or x = 2 Then
  19. t = Now + 0.0001
  20. Application.OnTime t, "test3"
  21. yn = True
  22. End If
  23. If x = 0 Then S = Timer
  24. Select Case x
  25. Case 0
  26. S = Timer
  27. x = x + 1
  28. Case 1
  29. S = Timer
  30. x = x + 1
  31. Case 2
  32. Cells(k, 18) = (Timer - S) / 86400: S = Timer
  33. x = x + 1
  34. Case 3
  35. S = Timer
  36. x = x + 1
  37. Case 4
  38. Cells(m, 19) = (Timer - S) / 86400: S = Timer
  39. x = x + 1
  40. Case 5
  41. Cells(n, 20) = (Timer - S) / 86400: S = Timer
  42. x = 0
  43. ActiveWorkbook.Save
  44. End Select
  45. End Sub

  46. Sub closefuntion()
  47. Application.OnKey "{RIGHT}"
  48. x = 0
  49. End Sub
  50. Sub test3()
  51. 'Beep
  52. MsgBox t & "時間到"
  53. yn = False
  54. End Sub


  55. Sub STOPS()
  56. If yn = True Then Application.OnTime t, "test3", , False: MsgBox "test3已經停止" Else MsgBox t & "已經運行"
  57. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復  color790

你的意思不知是否如此?
注意程序名稱不能使用VBA保留字
Hsieh 發表於 2012-2-12 00:41


謝謝版主~^^
主要是想利用左鍵來達到暫停執行,
如果再按右鍵, 即能回復執行, 但要扣掉剛剛開始到暫停的時間
比如, 一開始按右鍵是 12:50:10(按的當時時間) +10 秒 執行test3
          過了5秒在12:50:15 時按了左鍵, 假設過了3秒再按右鍵, 這時候想在 12:50:23秒執行test3
初學者color

TOP

本帖最後由 color790 於 2012-2-12 21:12 編輯

請問這個a跟b的值為什麼一樣
msgbox不是應該停止程式,當按確定才又開始?

Sub cc()
a = Now + TimeValue("00:00:10")
Cells(1, 1) = a
MsgBox a
b = Cells(1, 1).Value - Now + Now
MsgBox b
End Sub
初學者color

TOP

回復 16# color790


Sub cc()
a = Now + TimeValue("00:00:10")
Cells(1, 1) = a
MsgBox a
b = Cells(1, 1).Value - Now + Now
MsgBox b
End Sub
兩個紅字的NOW值是不同的
學海無涯_不恥下問

TOP

對不起版主, 是我腦袋有點打結, 問錯問題
後來看清楚了....   =.=|||
初學者color

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題