返回列表 上一主題 發帖

該如何取消巨集???

該如何取消巨集???

下面是現在時間+幾秒鐘後run ddd, 請問可以在已經run abc後, 中途停止run ddd嗎??
Sub abc()
Application.OnTime Now + 0.000100, "ddd"
End Sub

Sub ddd()
BEEP
End Sub
初學者color

HI~版主
謝謝你的回答, 不好意思, 門外漢發問一下
為什麼一定要這一句 Option Explicit
另外,加上去都會有錯誤, 還是請你幫我看一下好了....

Public x As Long, S As Double

Sub start()
Application.OnKey "{RIGHT}", "go"
Application.OnKey "{LEFT}", "STOPS"
Range("r2:t30,d4:d8,g4:g8,k4:k8,n4:n8").ClearContents
End Sub
Sub go()
k = 2: m = 2: n = 2
Do Until Cells(k, 18) = ""
k = k + 1
Loop
Do Until Cells(m, 19) = ""
m = m + 1
Loop
Do Until Cells(n, 20) = ""
n = n + 1
Loop
If x = 0 Or x = 2 Then
Application.OnTime Now + 0.0001, "test3"
End If
If x = 0 Then S = Timer
Select Case x
Case 0
S = Timer
x = x + 1
Case 1
S = Timer
x = x + 1
Case 2
Cells(k, 18) = (Timer - S) / 86400: S = Timer
x = x + 1
Case 3
S = Timer
x = x + 1
Case 4
Cells(m, 19) = (Timer - S) / 86400: S = Timer
x = x + 1
Case 5
Cells(n, 20) = (Timer - S) / 86400: S = Timer
x = 0
ActiveWorkbook.Save
End Select
End Sub

Sub closefuntion()
Application.OnKey "{RIGHT}"
x = 0
End Sub

Sub test3()
BEEP
End Sub


Sub STOPS()
Application.OnTime Now + 0.0001, "test3", , False
End Sub
初學者color

TOP

本帖最後由 color790 於 2012-2-9 23:48 編輯

謝謝版主的回答~
另外請問....
這個程式在按右鍵後假設開始計時20秒, 但在第12秒時按了左鍵停止了Sub STOPS()的執行
再按一次右鍵想要再8秒(20-12=8)後執行Sub STOPS()該怎麼改?(形容的不太好,希望版主看的懂)

我是改成這樣, 但按了右鍵再按左鍵,再按右鍵, 卻沒發出聲音..(重點在紅字區,z=0 應該就是指z="上午 12:00:00" 吧????)
Option Explicit
Dim p, w, z As Date
Public x As Long, S As Double

Sub start()
Application.OnKey "{RIGHT}", "go"
Application.OnKey "{LEFT}", "STOPS"
End Sub

Sub go()
If x = 0 Or x = 2 Then
If z <> "上午 12:00:00" Then
w = z - Now
Application.OnTime w, "test3"
Else
p = Now + 0.000112
Application.OnTime p, "test3"
End If
End If

z = 0
End Sub


Sub test3()
BEEP
End Sub


Sub STOPS()
Application.OnTime Now + 0.0001, "test3", , False
x = x - 1
z = p
End Sub
初學者color

TOP

有點深奧,只能幫的上範例一則
HUNGCHILIN 發表於 2012-2-9 23:35


怎麼裡面沒看到東西??
初學者color

TOP

本帖最後由 GBKEE 於 2012-2-10 16:40 編輯
回復  color790
執行 UserForm1 看看
GBKEE 發表於 2012-2-10 08:20

    ???? 還是沒有東西,是執行內的那個選項嗎?

初學者color

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

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

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

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題