返回列表 上一主題 發帖

該如何取消巨集???

回復 3# color790

在程式碼頂端加入Option Explicit   變數強制宣告
在接下來的變數都必須宣告其資料型態
只要沒有宣告就會出錯
加上這行有一個好處,就是如果變數拼錯很容易偵錯
再則,變數確實宣告型態,對程式執行速度有很大幫助
學海無涯_不恥下問

TOP

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

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

回復 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

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題