Application.OnTime 不适用于用户表单
Application.OnTime doesn't work with userform
我有一段代码有问题:
Private Sub cyclic()
Static i As Integer
i = i + 1
Cells(i, 11) = i
Open source For Append As #1
Write #1, Cells(i, 11)
Close #1
Application.Wait (Now + TimeValue("0:00:01"))
Open source For Input As #1
Do While Not EOF(1)
Input #1, x1
Loop
Cells(i, 1) = x1
Close #1
Application.OnTime Now + TimeValue("00:00:03"), "cyclic"
End Sub
差不多就是这样。
它从工作表 alt+f8 宏级别完美运行,但是当我想通过单击命令按钮将它与用户窗体一起使用时,它不会以 4 秒的间隔定期发生,而是只执行一个循环。如果我想用我的数字填充更多单元格,我必须单击单击单击并单击该死的按钮。我希望它更自动化。
这是我用来调用循环函数的用户窗体按钮的一段代码。它应该是重复的,但它不是。
Private Sub cbCyclic_Click()
cyclic
End Sub
我做错了什么?
从 Application.OnTime
引用的过程必须驻留在标准代码模块中。它不能位于 class 模块中,并且用户表单是专门的 classes.
标准代码模块中调用的过程必须是Public。
最好的办法是将 cyclic() 重新定位到标准代码模块并使其成为 Public。您在用户窗体中的命令按钮单击事件过程应该可以正常工作。
我有一段代码有问题:
Private Sub cyclic()
Static i As Integer
i = i + 1
Cells(i, 11) = i
Open source For Append As #1
Write #1, Cells(i, 11)
Close #1
Application.Wait (Now + TimeValue("0:00:01"))
Open source For Input As #1
Do While Not EOF(1)
Input #1, x1
Loop
Cells(i, 1) = x1
Close #1
Application.OnTime Now + TimeValue("00:00:03"), "cyclic"
End Sub
差不多就是这样。 它从工作表 alt+f8 宏级别完美运行,但是当我想通过单击命令按钮将它与用户窗体一起使用时,它不会以 4 秒的间隔定期发生,而是只执行一个循环。如果我想用我的数字填充更多单元格,我必须单击单击单击并单击该死的按钮。我希望它更自动化。
这是我用来调用循环函数的用户窗体按钮的一段代码。它应该是重复的,但它不是。
Private Sub cbCyclic_Click()
cyclic
End Sub
我做错了什么?
从 Application.OnTime
引用的过程必须驻留在标准代码模块中。它不能位于 class 模块中,并且用户表单是专门的 classes.
标准代码模块中调用的过程必须是Public。
最好的办法是将 cyclic() 重新定位到标准代码模块并使其成为 Public。您在用户窗体中的命令按钮单击事件过程应该可以正常工作。