返回列表 上一主題 發帖

[發問] 程序停止發問

[發問] 程序停止發問

請教大大以下兩個問題
問1,    我想寫一個停止程序,停止 a123程序,所有項未執行的程序,請教程式碼要如何寫?
問2,   有沒有辦法先判斷,程序是否有排入時程, 確定沒有在執行      Application.OnTime TimeValue("08:43:00"), "程序1"      的方法?

sub  a123() 
Application.OnTime TimeValue("08:43:00"), "程序1"
Application.OnTime TimeValue("09:45:00"), "程序2"
Application.OnTime TimeValue("15:45:00"), "程序3"
end sub

回復 1# blue2263


    不知道這個是不是你要的,看不太懂你的意思,停止程序?知道停止的位子?知道有沒有執行程序?

加入程序中就可以即時顯示在Excel左下角發現程序狀態。
  1. Application.StatusBar = "顯示文字" 'String
複製代碼
一分努力,一分收穫。
發問題前可以先搜索內文是否有相關範例。

TOP

回復 2# faye59

謝謝F大解答

程序加入顯示文字,雖然可以知道執行程序在那一個
但是因為排定時程的程序有可能是同一個,且程序太多,也會不好判斷

針對我的問題我在寫詳細一點
問1:   8:30執行( a123程序),我在8:50想停止預定9:45 & 15:45 執行的程序 ,請教程式碼要如何寫?
問2:  問1的問題解決後,己可解決我的問題,我只是想了解,有沒有方法知道,排定程序是否己取消執行

TOP

回復 3# blue2263

問題1
主程式執行中,容許再執行其它巨集, 可使用按鈕指定以下程式,
  1. Sub Stop()
  2.   Application.EnableCancelKey = xlInterrupt
  3. End Sub
複製代碼
或是設定一個變數,
賦予值的時候執行End主程式。
或設定Select Case指定開啟哪些OnTime。

OnTime中防止按Esc中斷程式,在開頭加入
  1. Application.EnableCancelKey = xlDisabled
複製代碼
問題2
程序有設定好的話不應該會未執行自動中斷。
如果沒設定好第一個OnTime也都不會執行。
如果你OnTime的呼叫物件是Excel外要特別注意Windown相關系統。
一分努力,一分收穫。
發問題前可以先搜索內文是否有相關範例。

TOP

回復 4# faye59

F大您好
我執行(停止執行)程序,依舊無法停止(每分迴圈)程序
不好意思我是初學者,可否請F大大詳解

Sub 每分迴圈()
     xTime = TimeSerial(Hour(Time), Minute(Time) + 1, 0)
     Application.OnTime xTime, "每分執行"
     With ThisWorkbook.Worksheets("工作表1")
         .Cells(1, 1) = .Cells(1, 1) + 1
     End With
End Sub

Sub 停止執行()
    Application.EnableCancelKey = xlInterrupt
End Sub

TOP

回復 5# blue2263


    可以附上您的檔案看看嗎?
也比較方便拿實際案例來測試及除錯。
一分努力,一分收穫。
發問題前可以先搜索內文是否有相關範例。

TOP

回復 6# faye59

停止執行測試.rar (13.39 KB)

F大大您好,不好意思,再麻煩你了,謝謝!!

TOP

Public xTime  '設為共用變數, 放在記憶中可供其它程序存取

Sub 每分迴圈()
xTime = TimeSerial(Hour(Time), Minute(Time) + 1, 0)
Application.OnTime xTime, "每分迴圈"
With ThisWorkbook.Worksheets("工作表1")
    .Cells(1, 1) = .Cells(1, 1) + 1
End With
End Sub

Sub 停止執行()
On Error Resume Next  '(略過錯誤) 若預訂執行的程式已不存在, 不發生錯誤
Application.OnTime xTime, "每分迴圈", Schedule:=False  '取消預訂執行程序
On Error GoTo 0
End Sub


如果預訂執行的程序有很多個, 則 [預訂時間] 變數 須用其他變數或物件存效, 再逐一取消
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 8# 准提部林

了解了,謝謝准大解答!!

TOP

        靜思自在 : 原諒別人就是善待自己。
返回列表 上一主題