我有这个问题:我的代码在Application.ScreenUpdating = False中运行,但在某些时刻,我需要向用户显示“进度消息”。
我有这段代码:
Sub CommentUpdate(TextBoxName As Object, CommentMessage As String)
Application.ScreenUpdating = True
TextBoxName.Text = CommentMessage
Application.ScreenUpdating = False
End Sub
但是当它在我的整个程序中运行时,它不起作用。如果我在VBA编辑器中逐步完成(通过F8),它可以工作,我看到了变化。
我怀疑在通用代码中,此指令(在True / False之间切换)太快,屏幕没有时间更新。
在程序中增加1秒的等待时间没有帮助...... 有什么想法吗?
答案 0 :(得分:0)
可能有多种原因没有发生这种情况。
Application.DoEvents()
行。这会减慢速度,但应该更新屏幕。UserForm
相关的待处理活动,则表单可能不会更新,直到完成为止。在这种情况下,您可以尝试:UserForm1.Repaint
RePaint
方法应刷新内容,包括文本框等,以显示更新的值。