Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Application.ScreenUpdate之间的延迟=真/假以显示更改_Vba_Excel - Fatal编程技术网

Vba Application.ScreenUpdate之间的延迟=真/假以显示更改

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

我有这个问题:我的代码在Application.screenUpdatement=False中运行,但有时我需要向用户显示“进度消息”

我有以下代码:

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…
作为第一个命令。