我有一个userform,每100ms运行一次脚本.该脚本处理用户窗体上的图像并用于为它们设置动画,同时窗体继续接收用户输入(鼠标单击和按键).这将一直持续到用户窗体关闭为止.虽然Application.OnTime似乎效果最好,但它只能在1秒或更长的时间值上一致地运行.
当我使用像
Sub StartTimer()
Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer"
End Sub
Private Sub Timer()
TheUserForm.ScreenUpdate
Application.OnTime now + (TimeValue("00:00:01") / 10), "Timer"
End Sub
并且在用户窗体中调用StartTimer,Excel变得非常无响应,并且“Timer”每秒被调用的次数超过它应该的次数.
虽然脚本以正确的间隔运行,但使用Sleep功能也会导致程序无响应.
这有解决方法吗?提前致谢!
最佳答案 OnTime只能安排为以1秒为增量运行.当您尝试在1/10秒安排它时,实际上计划在0秒,即它立即再次运行,消耗所有资源.
简短的回答,你不能使用OnTime每1/10秒运行一次事件.
还有其他方法,请参阅CPearson以使用对Windows API的调用
公共声明函数SetTimer Lib“user32”…