Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调试此VBA/Excel代码?_Vba_Excel - Fatal编程技术网

如何调试此VBA/Excel代码?

如何调试此VBA/Excel代码?,vba,excel,Vba,Excel,我有源VBA,问题是我如何在if-else中及时停止 Sub ok2() Application.OnTime Now + TimeValue("00:00:01"), "test", Schedule:=True End Sub Sub ok3() Application.OnTime Now + TimeValue("00:00:01"), "test", Schedule:=False End Sub Sub test() If i < 50 Then

我有源VBA,问题是我如何在if-else中及时停止

Sub ok2()
    Application.OnTime Now + TimeValue("00:00:01"), "test", Schedule:=True
End Sub
Sub ok3()
    Application.OnTime Now + TimeValue("00:00:01"), "test", Schedule:=False
End Sub

Sub test()
    If i < 50 Then
        UserForm2.Label1.Width = i * 2
        i = i + 1
        ok2
    Else
       ok3
    End If
End Sub
Sub-ok2()
Application.OnTime Now+TimeValue(“00:00:01”),“test”,Schedule:=True
端接头
分包商ok3()
Application.OnTime Now+TimeValue(“00:00:01”),“test”,Schedule:=False
端接头
子测试()
如果我<50,那么
UserForm2.Label1.Width=i*2
i=i+1
ok2
其他的
ok3
如果结束
端接头

要取消OnTime,您还需要提供时间表设置时的准确时间

考虑以下内容供您参考

Option Explicit

Private SetTimer As Date

Sub ok2()
    Application.OnTime SetTimer, "test", Schedule:=True
End Sub
Sub ok3()
    Application.OnTime SetTimer, "test", Schedule:=False
End Sub

Sub testTimer()
    If MsgBox("test", vbYesNo) = vbYes Then
        SetTimer = Now + TimeValue("00:00:10")
        ok2
    Else
       ok3
    End If
End Sub


sub test
    msgbox Now
end sub

不能使用

Application.OnTime Now + TimeValue("00:00:01"), "test", Schedule:=False
您需要在EarliestTime参数中提供它计划运行的确切时间

例如,当
Now
为17:00:00时,您运行
ok2

这意味着
test
将在17:00:01运行,因为
Now+TimeValue(“00:00:01”)
将在17:00:01运行

因此,要停止它,必须运行以下代码

Application.OnTime TimeValue("17:00:01"), "test", Schedule:=False

注意声明中没有
现在
,即必须提供时间表的确切时间。

不确定您试图解决的问题是什么,因为问题中没有什么细节,但通过查看脚本,您是否尝试过在
Sub test()
中的
ok2
ok3
之前添加
Call
?您好,我的按钮单击Call Sub-ok2,然后…请将您的问题标题添加到解释您遇到的问题或您提出的问题的内容。VBA exel在标记中,因此在标题中没有任何意义。请帮帮我,也不能传达任何信息;如果你不需要帮助,你就不会在这里发帖了。当未来的读者在搜索结果中看到你的标题时,你的标题应该对他们有用。嗨,兄弟,我的问题是如何及时停止是的,我理解。请看我的最新答案。欢迎你。如果它能解决您的问题,请将此标记为答案。TQ