Board logo

標題: [發問] 設定幾分鐘執行巨集 [打印本頁]

作者: t8899    時間: 2013-4-5 06:28     標題: 設定幾分鐘執行巨集

Sub a123()
If [u1] <> 1 Then Exit Sub
zzzzz
Application.OnTime Now + TimeValue("00:02:00"), "Sheet6.a123"
End Sub

多久執行一次zzzzz, 想改由儲存格A1來決定
A1=1 ==> 1分
A1=2 ==> 2分  
A1=3 ==> 30秒
不知如何改?
作者: t8899    時間: 2013-4-5 07:09

在執行中,U1改為2 暫停執行,改為1又繼續執行,無法跳出不執行???
作者: c_c_lai    時間: 2013-4-5 08:15

Sub a123()
If   1 Then Exit Sub
zzzzz
Application.OnTime Now + TimeValue("00:02:00"), "Sheet6.a1 ...
t8899 發表於 2013-4-5 06:28

[attach]14540[/attach]
作者: t8899    時間: 2013-4-5 09:52

c_c_lai 發表於 2013-4-5 08:15

可否分別用 1,2,3 來代替所輸入的時間??
作者: c_c_lai    時間: 2013-4-5 15:40

可否分別用 1,2,3 來代替所輸入的時間??
t8899 發表於 2013-4-5 09:52

當然可以!
但是必須在程式判斷內寫死。
[attach]14543[/attach]
作者: t8899    時間: 2013-4-6 07:21

當然可以!
但是必須在程式判斷內寫死。
c_c_lai 發表於 2013-4-5 15:40

在執行中,U1改為2 暫停執行,改為1又繼續執行,無法跳出不執行???
作者: c_c_lai    時間: 2013-4-6 08:54

在執行中,U1改為2 暫停執行,改為1又繼續執行,無法跳出不執行???
t8899 發表於 2013-4-6 07:21

不甚明瞭你的意思; 當 U1 改為 2 時, 並非 "暫停執行", 而是 "跳離不再執行"。
執行中將U1改為2 後,需在前一個  Hello() 執行完畢回到 a123() 時,才能再次
去判斷  [U1] <> 1; 如果此時   U1 為 1 , 則繼續執行, 如 U1 此時不為 1 時,
即行跳離不再執行 a123(), 如此解說後你再下載操作我的範例就會明瞭了!
[A1] 欄位之變動應用亦同此理。
[attach]14544[/attach]
作者: t8899    時間: 2013-4-6 09:05

本帖最後由 t8899 於 2013-4-6 09:07 編輯
不甚明瞭你的意思; 當 U1 改為 2 時, 並非 "暫停執行", 而是 "跳離不再執行"。
執行中將U1改為2 後, ...
c_c_lai 發表於 2013-4-6 08:54


如何讓u2 改為 2就中斷執行(不想再執行了) ??如果要執行再重新執行
作者: t8899    時間: 2013-4-6 09:17

你的例子,執行中,我改為2 再改為 1 就不執行了??
作者: t8899    時間: 2013-4-6 09:21

不甚明瞭你的意思; 當 U1 改為 2 時, 並非 "暫停執行", 而是 "跳離不再執行"。
執行中將U1改為2 後, ...
c_c_lai 發表於 2013-4-6 08:54


"跳離不再執行" ===>等於還在執行中???
作者: c_c_lai    時間: 2013-4-6 11:26

"跳離不再執行" ===>等於還在執行中???
t8899 發表於 2013-4-6 09:21
  1. Sub a123()
  2.     Dim tm As String
  3.    
  4.     Select Case [A1].Value
  5.         Case 1
  6.             tm = "00:01:00"     '  1 分鐘
  7.         Case 2
  8.             tm = "00:02:00"     '  2 分鐘
  9.         Case 3
  10.             tm = "00:00:10"     '  10 秒
  11.         Case Else
  12.             tm = "00:00:30"     '  30 秒
  13.     End Select
  14.    
  15.     Application.OnTime (Now + TimeValue(tm)), "ThisWorkbook.Hello"
  16. End Sub

  17. Sub Hello()
  18.     If [U1] <> 1 Then GoTo 30

  19.     MsgBox ("Good Day!")
  20. 30:
  21.     Call a123
  22. End Sub
複製代碼





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