Board logo

標題: 關於vba在跑時按下esc的問題 [打印本頁]

作者: 幼稚園飛天豬    時間: 2010-8-5 06:55     標題: 關於vba在跑時按下esc的問題

如附件
我有下跑迴圈
但遇到一個問題
在跑的時侯,若按esc就破解了。

可否讓他在跑時,esc按了沒效
我是希望他跑完,判斷時間,讓我設定的時間內按鈕有效,時間外按鈕無效而且關閉
作者: GBKEE    時間: 2010-8-5 07:43

回復 1# 幼稚園飛天豬
程式中使用 Application.EnableCancelKey=xlDisabled
說明檔中的說明:
控制 Microsoft Excel 對使用者使用 CTRL+BREAK (或 ESC、COMMAND+PERIOD) 鍵中斷程式執行的處理模式。讀/寫 XlEnableCancelKey 資料類型。
XlEnableCancelKey 可以是這些 XlEnableCancelKey 常數之一。
xlDisabled。對 [取消] 鍵的偵測功能完全無效。
xlErrorHandler。將中斷作為錯誤信號傳遞給執行程式,由 On Error GoTo 陳述式設定的錯誤處理程式偵測。可偵測錯誤代碼為 18。
xlInterrupt。中斷目前執行程式,使用者可以進行偵錯或取消程式的執行。

程式結束前記得使用
Application.EnableCancelKey=xlInterrupt  恢復使用者可以進行偵錯或取消程式的執行

作者: 幼稚園飛天豬    時間: 2010-8-5 08:32

感謝GBKEE 大的回應
程式修改後可以用了

GBKEE 大你說所的
若error可以跳至指定的程式
這段雖然看得懂
但vba卻不知怎麼寫
可有範例?
作者: GBKEE    時間: 2010-8-5 14:02

本帖最後由 GBKEE 於 2010-8-5 14:03 編輯

回復 3# 幼稚園飛天豬
說明檔上的範例
  1. Dim X&
  2. On Error GoTo handleCancel
  3. Application.EnableCancelKey = xlErrorHandler
  4. MsgBox "This may take a long time: press ESC to cancel"
  5. For X = 1 To 1000000    ' Do something 1,000,000 times (long!)
  6.     Debug.Print X '' do something here
  7.    
  8. Next X
  9. handleCancel:
  10. If Err = 18 Then
  11.     MsgBox "You cancelled"
  12. End If
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)