我遇到了一段代码问题:
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宏的级别完美运行,但是当我想通过单击一个CommandButton使用Userform时,它不会以4秒的间隔周期性地发生,但只做一个循环。如果我想用我的数字填充更多单元格,我必须单击单击并单击该死的按钮。我希望它更自动。
这是我用来调用循环函数的Userform按钮的一段代码。应该重复,但事实并非如此。
Private Sub cbCyclic_Click()
cyclic
End Sub
我做错了什么?
答案 0 :(得分:0)
从Application.OnTime
引用的过程必须位于标准代码模块中。它不能位于类模块中,而userforms是专门的类。
标准代码模块中调用的过程必须是Public。
您最好的办法是将cyclic()重定位到标准代码模块并将其设置为Public。然后,用户窗体中的命令按钮单击事件过程应该可以不进行任何更改。