Vba Application.ScreenUpdate之间的延迟=真/假以显示更改
我有这个问题:我的代码在Application.screenUpdatement=False中运行,但有时我需要向用户显示“进度消息” 我有以下代码:Vba Application.ScreenUpdate之间的延迟=真/假以显示更改,vba,excel,Vba,Excel,我有这个问题:我的代码在Application.screenUpdatement=False中运行,但有时我需要向用户显示“进度消息” 我有以下代码: Sub CommentUpdate(TextBoxName As Object, CommentMessage As String) Application.ScreenUpdating = True TextBoxName.Text = CommentMessage Application.ScreenUpdating = False End
Sub CommentUpdate(TextBoxName As Object, CommentMessage As String)
Application.ScreenUpdating = True
TextBoxName.Text = CommentMessage
Application.ScreenUpdating = False
End Sub
但是当它在我的整个程序中运行时,它就不起作用了。如果我在VBA编辑器中一步一步地执行(通过F8),它就会工作,并且我看到了更改
我怀疑在通用代码中,此指令(真/假之间的切换)太快,屏幕没有时间更新
将1秒等待时间添加到进程中没有帮助。。。
有什么想法吗?这可能是多种原因造成的
- 检查循环中的事件:如果循环运行过快,您可能无法注意到更改。为此,您可能需要在循环中运行一行
。这会减慢速度,但会更新屏幕应用程序.DoEvents()
- 重新绘制整个用户表单:如果您的代码中有与
用户表单相关的挂起活动,则表单在完成之前可能不会更新。在这种情况下,您可能需要尝试:
UserForm1.Repaint
RePaint
方法应该刷新内容,包括文本框等,以显示更新的值。@me how:是的,我做了,没有改进。我重新制定了我的命令…你试过改变命令顺序吗?将TextBoxName.Text…
作为第一个命令。